support the use of null to signal absence of address
This commit is contained in:
parent
a371f09d85
commit
0d00a82c88
@ -52,6 +52,10 @@ int ieee802154_addrstore(FAR struct ieee802154_packet_s *packet,
|
|||||||
|
|
||||||
/* encode dest addr */
|
/* encode dest addr */
|
||||||
|
|
||||||
|
if(dest == NULL)
|
||||||
|
{
|
||||||
|
goto nodest;
|
||||||
|
}
|
||||||
if(dest->ia_len == 2)
|
if(dest->ia_len == 2)
|
||||||
{
|
{
|
||||||
memcpy(packet->data+index, &dest->ia_panid, 2);
|
memcpy(packet->data+index, &dest->ia_panid, 2);
|
||||||
@ -70,6 +74,7 @@ int ieee802154_addrstore(FAR struct ieee802154_packet_s *packet,
|
|||||||
}
|
}
|
||||||
else if(dest->ia_len == 0)
|
else if(dest->ia_len == 0)
|
||||||
{
|
{
|
||||||
|
nodest:
|
||||||
packet->data[1] = (packet->data[1] & ~IEEE802154_FC2_DADDR) | IEEE802154_DADDR_NONE;
|
packet->data[1] = (packet->data[1] & ~IEEE802154_FC2_DADDR) | IEEE802154_DADDR_NONE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -79,7 +84,7 @@ int ieee802154_addrstore(FAR struct ieee802154_packet_s *packet,
|
|||||||
|
|
||||||
/* encode source pan id according to compression */
|
/* encode source pan id according to compression */
|
||||||
|
|
||||||
if( (dest->ia_len != 0) && (src->ia_len != 0) && (dest->ia_panid == src->ia_panid) )
|
if( (dest != NULL && dest->ia_len != 0) && (src != NULL && src->ia_len != 0) && (dest->ia_panid == src->ia_panid) )
|
||||||
{
|
{
|
||||||
packet->data[0] |= IEEE802154_FC1_INTRA;
|
packet->data[0] |= IEEE802154_FC1_INTRA;
|
||||||
}
|
}
|
||||||
@ -92,6 +97,10 @@ int ieee802154_addrstore(FAR struct ieee802154_packet_s *packet,
|
|||||||
|
|
||||||
/* encode source addr */
|
/* encode source addr */
|
||||||
|
|
||||||
|
if(src == NULL)
|
||||||
|
{
|
||||||
|
goto nosrc;
|
||||||
|
}
|
||||||
if(src->ia_len == 2)
|
if(src->ia_len == 2)
|
||||||
{
|
{
|
||||||
memcpy(packet->data+index, &src->ia_saddr, 2);
|
memcpy(packet->data+index, &src->ia_saddr, 2);
|
||||||
@ -106,6 +115,7 @@ int ieee802154_addrstore(FAR struct ieee802154_packet_s *packet,
|
|||||||
}
|
}
|
||||||
else if(dest->ia_len == 0)
|
else if(dest->ia_len == 0)
|
||||||
{
|
{
|
||||||
|
nosrc:
|
||||||
packet->data[1] = (packet->data[1] & ~IEEE802154_FC2_SADDR) | IEEE802154_SADDR_NONE;
|
packet->data[1] = (packet->data[1] & ~IEEE802154_FC2_SADDR) | IEEE802154_SADDR_NONE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user