Skip to content

Commit

Permalink
MAC ie library update:
Browse files Browse the repository at this point in the history
Added new discover function for discover
mac_ie_header_sub_id_discover(). Function compare standard header id and
first byte from content.
  • Loading branch information
Juha Heiskanen authored and juhhei01 committed Jan 30, 2018
1 parent b2198b3 commit 93f0ed7
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 0 deletions.
22 changes: 22 additions & 0 deletions source/6LoWPAN/MAC/mac_ie_lib.c
Original file line number Diff line number Diff line change
Expand Up @@ -94,3 +94,25 @@ uint8_t mac_ie_header_discover(uint8_t *header_ptr, uint16_t length, mac_header_
}
return 0;
}

uint8_t mac_ie_header_sub_id_discover(uint8_t *header_ptr, uint16_t length, mac_header_IE_t * header_ie, uint8_t sub_id)
{
mac_header_IE_t ie_element;
uint8_t *sub_id_ptr;
while (length > 2) {
mac_ie_header_parse(&ie_element, header_ptr);
sub_id_ptr = ie_element.content_ptr;
if (ie_element.length && header_ie->id == ie_element.id && *sub_id_ptr == sub_id) {
sub_id_ptr++;
ie_element.length--;
header_ie->content_ptr = sub_id_ptr;
header_ie->length = ie_element.length;
return ie_element.length;
}

length -= ie_element.length +2;

header_ptr += ie_element.length + 2;
}
return 0;
}
1 change: 1 addition & 0 deletions source/6LoWPAN/MAC/mac_ie_lib.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,6 @@ uint8_t *mac_ie_header_base_write(uint8_t *ptr, uint8_t type, uint16_t length);
uint8_t *mac_ie_payload_base_write(uint8_t *ptr, uint8_t type, uint16_t length);
uint16_t mac_ie_payload_discover(uint8_t *payload_ptr, uint16_t length, struct mac_payload_IE_s * payload_ie);
uint8_t mac_ie_header_discover(uint8_t *header_ptr, uint16_t length, struct mac_header_IE_s * header_ie);
uint8_t mac_ie_header_sub_id_discover(uint8_t *header_ptr, uint16_t length, mac_header_IE_t * header_ie, uint8_t sub_id);

#endif /* MAC_IE_LIB_H_ */
7 changes: 7 additions & 0 deletions test/nanostack/unittest/stub/mac_ie_lib_stub.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,10 @@ uint8_t mac_ie_header_discover(uint8_t *header_ptr, uint16_t length, mac_header_
header_ie->content_ptr = payload_ptr;
return mac_ie_lib_stub_def.value_uint8;
}


uint8_t mac_ie_header_sub_id_discover(uint8_t *header_ptr, uint16_t length, mac_header_IE_t * header_ie, uint8_t sub_id)
{
header_ie->content_ptr = payload_ptr;
return mac_ie_lib_stub_def.value_uint8;
}

0 comments on commit 93f0ed7

Please sign in to comment.