Another baby step in removing MAC knowledge from 6loWPAN.

This commit is contained in:
Gregory Nutt
2017-05-04 11:33:22 -06:00
parent 2d5fa7bc2e
commit 1cf891bbe1
12 changed files with 206 additions and 120 deletions
-44
View File
@@ -72,50 +72,6 @@
# define NET_6LOWPAN_ADDRSIZE NET_6LOWPAN_SADDRSIZE
#endif
/* Frame format definitions *************************************************/
/* These are some definitions of element values used in the FCF. See the
* IEEE802.15.4 spec for details.
*/
#define FRAME802154_FRAMETYPE_SHIFT (0) /* Bits 0-2: Frame type */
#define FRAME802154_FRAMETYPE_MASK (7 << FRAME802154_FRAMETYPE_SHIFT)
#define FRAME802154_SECENABLED_SHIFT (3) /* Bit 3: Security enabled */
#define FRAME802154_FRAMEPENDING_SHIFT (4) /* Bit 4: Frame pending */
#define FRAME802154_ACKREQUEST_SHIFT (5) /* Bit 5: ACK request */
#define FRAME802154_PANIDCOMP_SHIFT (6) /* Bit 6: PANID compression */
/* Bits 7-9: Reserved */
#define FRAME802154_DSTADDR_SHIFT (2) /* Bits 10-11: Dest address mode */
#define FRAME802154_DSTADDR_MASK (3 << FRAME802154_DSTADDR_SHIFT)
#define FRAME802154_VERSION_SHIFT (4) /* Bit 12-13: Frame version */
#define FRAME802154_VERSION_MASK (3 << FRAME802154_VERSION_SHIFT)
#define FRAME802154_SRCADDR_SHIFT (6) /* Bits 14-15: Source address mode */
#define FRAME802154_SRCADDR_MASK (3 << FRAME802154_SRCADDR_SHIFT)
/* Unshifted values for use in struct frame802154_fcf_s */
#define FRAME802154_BEACONFRAME (0)
#define FRAME802154_DATAFRAME (1)
#define FRAME802154_ACKFRAME (2)
#define FRAME802154_CMDFRAME (3)
#define FRAME802154_BEACONREQ (7)
#define FRAME802154_IEEERESERVED (0)
#define FRAME802154_NOADDR (0) /* Only valid for ACK or Beacon frames */
#define FRAME802154_SHORTADDRMODE (2)
#define FRAME802154_LONGADDRMODE (3)
#define FRAME802154_NOBEACONS 0x0f
#define FRAME802154_BROADCASTADDR 0xffff
#define FRAME802154_BROADCASTPANDID 0xffff
#define FRAME802154_IEEE802154_2003 (0)
#define FRAME802154_IEEE802154_2006 (1)
#define FRAME802154_SECURITY_LEVEL_NONE (0)
#define FRAME802154_SECURITY_LEVEL_128 (3)
/* This maximum size of an IEEE802.15.4 frame. Certain, non-standard
* devices may exceed this value, however.
*/
+3 -1
View File
@@ -437,9 +437,11 @@ int ipv6_input(FAR struct net_driver_s *dev);
#ifdef CONFIG_NET_6LOWPAN
struct ieee802154_driver_s; /* See sixlowpan.h */
struct eee802154_data_ind_s; /* See sixlowpan.h */
struct iob_s; /* See iob.h */
int sixlowpan_input(FAR struct ieee802154_driver_s *ieee,
FAR struct iob_s *framelist);
FAR struct iob_s *framelist,
FAR const struct eee802154_data_ind_s *ind);
#endif
/****************************************************************************
+10 -3
View File
@@ -342,6 +342,7 @@
*/
struct ieee802154_frame_meta_s; /* Forward reference */
struct eee802154_data_ind_s; /* Forward reference */
struct iob_s; /* Forward reference */
struct ieee802154_driver_s
@@ -420,7 +421,7 @@ struct ieee802154_driver_s
/* The source MAC address of the fragments being merged */
struct sixlowpan_addr_s i_fragsrc;
union sixlowpan_anyaddr_u i_fragsrc;
/* That time at which reassembly was started. If the elapsed time
* exceeds CONFIG_NET_6LOWPAN_MAXAGE, then the reassembly will
@@ -525,7 +526,12 @@ struct ieee802154_driver_s
*
* Input Parameters:
* ieee - The IEEE802.15.4 MAC network driver interface.
* framelist - The head of an incoming list of frames.
* framelist - The head of an incoming list of frames. Normally this
* would be a single frame. A list may be provided if
* appropriate, however.
* ind - Meta data characterizing the received packet. If there are
* multilple frames in the list, this meta data must apply to
* all of the frames!
*
* Returned Value:
* Ok is returned on success; Othewise a negated errno value is returned.
@@ -533,7 +539,8 @@ struct ieee802154_driver_s
****************************************************************************/
int sixlowpan_input(FAR struct ieee802154_driver_s *ieee,
FAR struct iob_s *framelist);
FAR struct iob_s *framelist,
FAR const struct eee802154_data_ind_s *ind);
#endif /* CONFIG_NET_6LOWPAN */
#endif /* __INCLUDE_NUTTX_NET_SIXLOWPAN_H */