More cisco-compatibility.
FossilOrigin-Name: 04ec8be34c8f04e70ce803fb8f47f72f426bdc7cf85edced8f09d3a9f1f0c50d
This commit is contained in:
@ -6,32 +6,44 @@
|
||||
#include "bstr.h"
|
||||
|
||||
|
||||
static int add_board_data_subelem(uint8_t *msg,int type, bstr_t data)
|
||||
{
|
||||
if (!data)
|
||||
return 0;
|
||||
|
||||
|
||||
int l = bstr_len(data);
|
||||
*((uint32_t *) (msg)) = htonl(type << 16 | l);
|
||||
memcpy(msg + 4, bstr_data(data), l);
|
||||
return l+4;
|
||||
|
||||
}
|
||||
|
||||
|
||||
void cwmsg_addelem_wtp_board_data(struct cwmsg *cwmsg, struct wtpinfo *wtpinfo)
|
||||
{
|
||||
uint8_t msg[512];
|
||||
uint8_t msg[1024];
|
||||
|
||||
/* vendor identifier */
|
||||
*((uint32_t *) msg) = htonl(wtpinfo->vendor_id);
|
||||
|
||||
int l;
|
||||
int len = 4;
|
||||
|
||||
/* mandatory sub-elements */
|
||||
if (wtpinfo->model_no) {
|
||||
l = bstr_len(wtpinfo->model_no);
|
||||
*((uint32_t *) (msg + len)) = htonl(CWBOARDDATA_MODELNO << 16 | l);
|
||||
memcpy(msg + len + 4, bstr_data(wtpinfo->model_no), l);
|
||||
len += l + 4;
|
||||
}
|
||||
|
||||
if (wtpinfo->serial_no) {
|
||||
l = bstr_len( wtpinfo->serial_no);
|
||||
*((uint32_t *) (msg + len)) = htonl(CWBOARDDATA_SERIALNO << 16 | l);
|
||||
memcpy(msg + len + 4, bstr_data(wtpinfo->serial_no), l);
|
||||
len += l + 4;
|
||||
}
|
||||
|
||||
len += add_board_data_subelem(msg+len,CWBOARDDATA_MODELNO,wtpinfo->model_no);
|
||||
|
||||
len += add_board_data_subelem(msg+len,CWBOARDDATA_SERIALNO,wtpinfo->serial_no);
|
||||
|
||||
|
||||
/* other sub-elements */
|
||||
|
||||
len += add_board_data_subelem(msg+len,CWBOARDDATA_BOARDID,wtpinfo->board_id);
|
||||
|
||||
len += add_board_data_subelem(msg+len,CWBOARDDATA_REVISION,wtpinfo->board_revision);
|
||||
|
||||
|
||||
if (wtpinfo->macaddress) {
|
||||
*((uint32_t *) (msg + len)) =
|
||||
htonl(CWBOARDDATA_MACADDRESS << 16 | wtpinfo->macaddress_len);
|
||||
|
Reference in New Issue
Block a user