mbed-os/features/netsocket
Hasnain Virk b634ca49dd Architecture rework, bug fixing & missing features
MAC layer is now a class rather than being a blob.
In addition to that Mac commands are now being handled in
a seperate subsystem (a class of its own). In future we
will do the same with othe sublayers of MAC like MLME, MCPS etc.

The drive behind this exercise is to make MAC and supporting layers
into an object oriented system.

Major bug fixes include:

- last join time inclusion in band parameters
- disabling rx2 window if we missed the slot already
- MLME uplink schdule hook
- nbRep according to spec
- maintaining datarate after successful joining
- suppressing MLME requests if MAC is in TX_DELAYED state
- Uplink dwell time verification

Some missing features are implemented. Details are as follows.

Support for LinkCheckRequet:

An application API is added, add_link_check_request() to delegate a
request for Link Check Request MAC command.

* Application provides a callback function that needs to be called on reception of
  link check response.

* Mac command is piggybacked with data frames.

This API makes the sticky MAC command stick with the application payloads until/unless
the application un-sticks the said mac command using remove_link_check_request() API.

Handling fPending bit:

If in the Downlink, we get the fPending bit set in fctrl octet,
we attempt to send an empty message back to Network Server to
open additional Receive windows. This operation is independent
of the application. An RX_DONE event is queued bedore generating
the said empty message. Specification does not mention what can be the
type of that empty message. We have decided it to be of CONFIRMED
type as it gives us an added benefit of retries if the corresponding
RX slots are missed.

Radio event callbacks as Mbed callbacks:

radio_events_t structure has been carrying C-style callbacks which was
inherited from the legacy code. These callbacks has now been changed to
Mbed Callbacks that makes sure that we can be object oriented from now
on.
2018-02-11 00:31:47 +02:00
..
cellular Merge pull request #5016 from u-blox/apndb_fix 2017-09-27 09:06:46 -05:00
CellularBase.h Major Refactoring & extensions 2017-05-31 15:02:11 +03:00
CellularInterface.h Remove doxygen warnings in nsapi 2017-06-05 17:32:46 -05:00
EthInterface.h Add tags to our code 2016-10-04 15:02:44 -05:00
LoRaRadio.h Architecture rework, bug fixing & missing features 2018-02-11 00:31:47 +02:00
LoRaWANBase.h Architecture rework, bug fixing & missing features 2018-02-11 00:31:47 +02:00
MeshInterface.h Add tags to our code 2016-10-04 15:02:44 -05:00
NetworkInterface.cpp nsapi - Added standardized return types for size and errors 2016-11-02 15:25:22 -05:00
NetworkInterface.h Remove doxygen warnings in nsapi 2017-06-05 17:32:46 -05:00
NetworkStack.cpp nsapi - Fixed missing NSAPI_UNSPEC check in gethostbyname for ip literals 2016-11-08 18:05:35 -06:00
NetworkStack.h Remove doxygen warnings in nsapi 2017-06-05 17:32:46 -05:00
Socket.cpp Add multicast implementation for UDPSocket. IPv4 and IPv6 both supported. 2017-10-10 18:21:18 -05:00
Socket.h Add multicast implementation for UDPSocket. IPv4 and IPv6 both supported. 2017-10-10 18:21:18 -05:00
SocketAddress.cpp netsocket - Fix set_ip_bytes out-of-bound access 2016-11-04 11:02:34 +08:00
SocketAddress.h Remove doxygen warnings in nsapi 2017-06-05 17:32:46 -05:00
TCPServer.cpp nsapi: Changed initial state of sockets to allow events 2017-01-20 07:58:34 -06:00
TCPServer.h Remove doxygen warnings in nsapi 2017-06-05 17:32:46 -05:00
TCPSocket.cpp Make TCPSocket send all data when blocking 2017-11-21 09:51:36 +02:00
TCPSocket.h Clarify TCPSocket::recv() and UDPSocket::recvfrom() documentation. 2018-01-12 12:03:56 +02:00
UDPSocket.cpp Add multicast implementation for UDPSocket. IPv4 and IPv6 both supported. 2017-10-10 18:21:18 -05:00
UDPSocket.h Clarify TCPSocket::recv() and UDPSocket::recvfrom() documentation. 2018-01-12 12:03:56 +02:00
WiFiAccessPoint.cpp Merge remote-tracking branch 'upstream/master' into feature_wifi_ublox_merge 2016-10-02 07:29:07 -05:00
WiFiAccessPoint.h Fixed missing public 2016-10-04 15:52:56 +02:00
WiFiInterface.h Remove doxygen warnings in nsapi 2017-06-05 17:32:46 -05:00
emac_stack_mem.h Turn on doxygen for DEVICE_* features 2017-08-11 15:47:44 -05:00
mbed_lib.json restructure - Restructured features/net directory 2016-09-30 19:18:09 -05:00
nsapi.h Add tags to our code 2016-10-04 15:02:44 -05:00
nsapi_dns.cpp Correct return value of nsapi_dns_query_multiple 2018-01-26 14:08:29 +02:00
nsapi_dns.h nsapi - Added standardized return types for size and errors 2016-11-02 15:25:22 -05:00
nsapi_ppp.h Either ipv4 or ipv4v6 PPP and IP stacks are enabled based on 3GPP context 2017-08-22 13:14:41 +03:00
nsapi_types.h Add multicast implementation for UDPSocket. IPv4 and IPv6 both supported. 2017-10-10 18:21:18 -05:00