more progress in new ktv storage
FossilOrigin-Name: a2c26a366de1946feb707439302b22de2e3d02f7621d0834fdf242852b28639c
This commit is contained in:
@ -132,7 +132,7 @@ int capwap_in_wtp_board_data(struct cw_ElemHandler *eh, struct cw_ElemHandlerPar
|
||||
mavl_t cfg = params->conn->remote_cfg;
|
||||
|
||||
|
||||
sprintf(vendor_key,"%s/%s",eh->key,CW_KEY_VENDOR);
|
||||
sprintf(vendor_key,"%s/%s",eh->key,CW_SKEY_VENDOR);
|
||||
|
||||
cw_ktv_add(cfg,vendor_key,CW_TYPE_DWORD,data,len);
|
||||
|
||||
|
@ -15,8 +15,12 @@ int cisco_in_wtp_descriptor(struct cw_ElemHandler *eh, struct cw_ElemHandlerPara
|
||||
|
||||
extern int cisco_out_ac_descriptor(struct conn *conn, struct cw_action_out *a,
|
||||
uint8_t * dst);
|
||||
extern int cisco_out_wtp_descriptor(struct conn *conn, struct cw_action_out *a,
|
||||
uint8_t * dst);
|
||||
|
||||
int cisco_out_wtp_descriptor(struct cw_ElemHandler * handler, struct cw_ElemHandlerParams * params
|
||||
, uint8_t * dst);
|
||||
|
||||
|
||||
|
||||
extern int cisco_out_board_data_options(struct conn *conn, struct cw_action_out *a,
|
||||
uint8_t * dst);
|
||||
|
||||
|
@ -43,7 +43,7 @@
|
||||
|
||||
#include "cw/msgset.h"
|
||||
#include "cw/ktv.h"
|
||||
|
||||
#include "cw/keys.h"
|
||||
|
||||
static struct cw_ElemHandler handlers[] = {
|
||||
{
|
||||
@ -52,8 +52,9 @@ static struct cw_ElemHandler handlers[] = {
|
||||
0,0, /* Vendor / Proto */
|
||||
4,128, /* min/max length */
|
||||
NULL, /* type */
|
||||
"wtp_descriptor", /* Key */
|
||||
cisco_in_wtp_descriptor /* get */
|
||||
CW_KEY_WTP_DESCRIPTOR, /* Key */
|
||||
cisco_in_wtp_descriptor, /* get */
|
||||
cisco_out_wtp_descriptor /* put */
|
||||
}
|
||||
,
|
||||
{
|
||||
@ -62,8 +63,9 @@ static struct cw_ElemHandler handlers[] = {
|
||||
CW_VENDOR_ID_CISCO,0, /* Vendor / Proto */
|
||||
1,512, /* min/max length */
|
||||
CW_TYPE_BSTR16, /* type */
|
||||
"wtp_name", /* Key */
|
||||
cw_in_generic /* handler */
|
||||
CW_KEY_WTP_NAME, /* Key */
|
||||
cw_in_generic, /* get */
|
||||
cw_out_generic /* put */
|
||||
}
|
||||
|
||||
,
|
||||
@ -71,10 +73,11 @@ static struct cw_ElemHandler handlers[] = {
|
||||
"Board Data Options", /* name */
|
||||
CW_CISCO_BOARD_DATA_OPTIONS, /* Element ID */
|
||||
CW_VENDOR_ID_CISCO,0, /* Vendor / Proto */
|
||||
2,2, /* min/max length */
|
||||
4,4, /* min/max length */
|
||||
CW_TYPE_DWORD, /* type */
|
||||
"cisco_board_data_options", /* Key */
|
||||
cw_in_generic /* handler */
|
||||
"cisco/board-data-options", /* Key */
|
||||
cw_in_generic, /* handler */
|
||||
cw_out_generic /* put */
|
||||
}
|
||||
,
|
||||
{0,0,0,0,0,0,0,0}
|
||||
|
@ -27,10 +27,10 @@ int cisco_in_wtp_descriptor(struct cw_ElemHandler *eh, struct cw_ElemHandlerPara
|
||||
{
|
||||
|
||||
static struct cw_DescriptorSubelemDef allowed[] = {
|
||||
{CW_VENDOR_ID_CISCO,CW_SUBELEM_WTP_HARDWARE_VERSION, CW_KEY_HARDWARE, 1024,0},
|
||||
{CW_VENDOR_ID_CISCO,CW_SUBELEM_WTP_SOFTWARE_VERSION, CW_KEY_SOFTWARE, 1024.0},
|
||||
{CW_VENDOR_ID_CISCO,CW_SUBELEM_WTP_BOOTLOADER_VERSION, CW_KEY_BOOTLOADER, 1024.0},
|
||||
{CW_VENDOR_ID_CISCO,CW_SUBELEM_WTP_OTHERSOFTWARE_VERSION, CW_KEY_OTHER_SOFTWARE, 1024.0},
|
||||
{CW_VENDOR_ID_CISCO,CW_SUBELEM_WTP_HARDWARE_VERSION, CW_SKEY_HARDWARE, 1024,0},
|
||||
{CW_VENDOR_ID_CISCO,CW_SUBELEM_WTP_SOFTWARE_VERSION, CW_SKEY_SOFTWARE, 1024.0},
|
||||
{CW_VENDOR_ID_CISCO,CW_SUBELEM_WTP_BOOTLOADER_VERSION, CW_SKEY_BOOTLOADER, 1024.0},
|
||||
{CW_VENDOR_ID_CISCO,CW_SUBELEM_WTP_OTHERSOFTWARE_VERSION, CW_SKEY_OTHER_SOFTWARE, 1024.0},
|
||||
{0,0, NULL, 0,0}
|
||||
};
|
||||
|
||||
|
@ -5,29 +5,86 @@
|
||||
|
||||
|
||||
#include "cisco.h"
|
||||
#include "cw/ktv.h"
|
||||
#include "cw/keys.h"
|
||||
#include "cw/dbg.h"
|
||||
|
||||
//#extern mbag_t cisco_config_wtp;
|
||||
|
||||
int cisco_out_wtp_descriptor(struct conn *conn, struct cw_action_out *a, uint8_t * dst)
|
||||
|
||||
int cisco_out_wtp_descriptor(struct cw_ElemHandler * eh, struct cw_ElemHandlerParams * params
|
||||
, uint8_t * dst)
|
||||
{
|
||||
|
||||
// mbag_t mbag = cisco_config_wtp;
|
||||
mbag_t mbag = NULL;
|
||||
|
||||
// XXX Dummy WTP Descriptor Header
|
||||
uint8_t *d = dst+4;
|
||||
char key[256];
|
||||
int len;
|
||||
/* // XXX Dummy WTP Descriptor Header */
|
||||
uint8_t *d;
|
||||
cw_KTV_t * val;
|
||||
|
||||
d = dst+4;
|
||||
|
||||
/*cw_ktv_init_byte(&val,8);*/
|
||||
sprintf(key,"%s/%s",eh->key,CW_SKEY_MAX_RADIOS);
|
||||
val = cw_ktv_get(params->conn->local_cfg,key, CW_TYPE_BYTE);
|
||||
if (val != NULL)
|
||||
d+=val->type->put(val,d);
|
||||
else{
|
||||
cw_dbg(DBG_WARN,"Cannot get value for %s, setting to 0", CW_SKEY_MAX_RADIOS);
|
||||
d+=cw_put_byte(d,0);
|
||||
}
|
||||
|
||||
sprintf(key,"%s/%s",eh->key,CW_SKEY_RADIOS_IN_USE);
|
||||
val = cw_ktv_get(params->conn->local_cfg,key, CW_TYPE_BYTE);
|
||||
if (val != NULL){
|
||||
d+=val->type->put(val,d);
|
||||
}
|
||||
else{
|
||||
d+=cw_put_byte(d,0); /*radios in use*/
|
||||
}
|
||||
|
||||
|
||||
//int n =conn->radios->count;
|
||||
//printf("radio count %d\n",n);
|
||||
/*len = handler->type->put(elem,dst+start);*/
|
||||
|
||||
|
||||
d+=cw_put_byte(d,conn->radios->count); //max radios
|
||||
d+=cw_put_byte(d,2); //radios in use
|
||||
|
||||
d+=cw_put_encryption_capabilities_7(d,1);
|
||||
|
||||
mbag_item_t * i;
|
||||
|
||||
/* d += cw_put_dword(d, bstrv_get_vendor_id(v));
|
||||
d += cw_put_dword(d, (subelem_id << 16) | bstrv_len(v));
|
||||
d += cw_put_data(d, bstrv_data(v), bstrv_len(v));
|
||||
*/
|
||||
|
||||
/* sprintf(key,"%s/%s/%s",eh->key,CW_SKEY_HARDWARE,CW_SKEY_VENDOR);
|
||||
vendor = cw_ktv_get(params->conn->local_cfg,key,CW_TYPE_DWORD);
|
||||
sprintf(key,"%s/%s/%s",eh->key,CW_SKEY_HARDWARE,CW_SKEY_VENDOR);
|
||||
version = cw_ktv_get(params->conn->local_cfg,key,CW_TYPE_BSTR16);
|
||||
|
||||
if (vendor == NULL){
|
||||
cw_log(LOG_ERR, "Can't send %s, not found.", key);
|
||||
}
|
||||
*/
|
||||
|
||||
/* hardware version sub element */
|
||||
sprintf(key,"%s/%s",eh->key,CW_SKEY_HARDWARE);
|
||||
d+=cw_write_descriptor_subelem (d, params->conn->local_cfg,
|
||||
CW_SUBELEM_WTP_HARDWARE_VERSION, key);
|
||||
|
||||
/* software version sub element */
|
||||
sprintf(key,"%s/%s",eh->key,CW_SKEY_SOFTWARE);
|
||||
d+=cw_write_descriptor_subelem (d, params->conn->local_cfg,
|
||||
CW_SUBELEM_WTP_SOFTWARE_VERSION, key);
|
||||
|
||||
/* bootloader version sub element */
|
||||
sprintf(key,"%s/%s",eh->key,CW_SKEY_BOOTLOADER);
|
||||
d+=cw_write_descriptor_subelem (d, params->conn->local_cfg,
|
||||
CW_SUBELEM_WTP_BOOTLOADER_VERSION, key);
|
||||
|
||||
|
||||
|
||||
|
||||
/* mbag_item_t * i;
|
||||
i = mbag_get(mbag,CW_ITEM_WTP_HARDWARE_VERSION);
|
||||
*/
|
||||
/* if ( i ) {
|
||||
d += cw_put_version(d,CW_SUBELEM_WTP_HARDWARE_VERSION,i->u2.data);
|
||||
}
|
||||
@ -36,7 +93,7 @@ mbag_t mbag = NULL;
|
||||
}
|
||||
*/
|
||||
|
||||
i = mbag_get(mbag,CW_ITEM_WTP_SOFTWARE_VERSION);
|
||||
/*i = mbag_get(mbag,CW_ITEM_WTP_SOFTWARE_VERSION);*/
|
||||
/*
|
||||
if ( i ) {
|
||||
d += cw_put_version(d,CW_SUBELEM_WTP_SOFTWARE_VERSION,i->u2.data);
|
||||
@ -54,6 +111,6 @@ mbag_t mbag = NULL;
|
||||
}
|
||||
*/
|
||||
|
||||
int len = d-dst-4;
|
||||
return len + cw_put_elem_hdr(dst,a->elem_id,len);
|
||||
len = d-dst-4;
|
||||
return len + cw_put_elem_hdr(dst,eh->id,len);
|
||||
}
|
||||
|
Reference in New Issue
Block a user