freewtp/src/common/capwap_element_wtpdescriptor.h

43 lines
1.5 KiB
C

#ifndef __CAPWAP_ELEMENT_WTPDESCRIPTOR_HEADER__
#define __CAPWAP_ELEMENT_WTPDESCRIPTOR_HEADER__
#define CAPWAP_ELEMENT_WTPDESCRIPTOR 39
struct capwap_wtpdescriptor_element {
unsigned char maxradios;
unsigned char radiosinuse;
struct capwap_array* encryptsubelement;
struct capwap_array* descsubelement;
};
struct capwap_wtpdescriptor_encrypt_subelement {
unsigned char wbid;
unsigned short capabilities;
};
#define CAPWAP_WTPDESC_SUBELEMENT_HARDWAREVERSION 0
#define CAPWAP_WTPDESC_SUBELEMENT_SOFTWAREVERSION 1
#define CAPWAP_WTPDESC_SUBELEMENT_BOOTVERSION 2
#define CAPWAP_WTPDESC_SUBELEMENT_OTHERVERSION 3
#define CAPWAP_WTPDESC_SUBELEMENT_MAXDATA 1024
struct capwap_wtpdescriptor_desc_subelement {
unsigned long vendor;
unsigned short type;
unsigned short length;
char data[CAPWAP_WTPDESC_SUBELEMENT_MAXDATA];
};
struct capwap_message_element* capwap_wtpdescriptor_element_create(void* data, unsigned long datalength);
int capwap_wtpdescriptor_element_validate(struct capwap_message_element* element);
void* capwap_wtpdescriptor_element_parsing(struct capwap_message_element* element);
void capwap_wtpdescriptor_element_free(void* data);
/* Helper */
#define CAPWAP_CREATE_WTPDESCRIPTOR_ELEMENT(x) ({ \
struct capwap_message_elements_func* f = capwap_get_message_element(CAPWAP_ELEMENT_WTPDESCRIPTOR); \
f->create(x, sizeof(struct capwap_wtpdescriptor_element)); \
})
#endif /* __CAPWAP_ELEMENT_WTPDESCRIPTOR_HEADER__ */