hardware verson sent in disc req
FossilOrigin-Name: f1bcc6902585c7547cc4ab386d0ba303b2739a18dc7e8589fbf07ede838cf326
This commit is contained in:
parent
5db45e2e95
commit
3840409aab
@ -3,6 +3,9 @@
|
|||||||
#include "cw/capwap_items.h"
|
#include "cw/capwap_items.h"
|
||||||
|
|
||||||
|
|
||||||
|
#include "mod_capwap.h"
|
||||||
|
|
||||||
|
|
||||||
static cw_action_in_t actions_in[] = {
|
static cw_action_in_t actions_in[] = {
|
||||||
|
|
||||||
|
|
||||||
@ -67,7 +70,7 @@ static cw_action_out_t actions_out[] = {
|
|||||||
.msg_id = CW_MSG_DISCOVERY_REQUEST,
|
.msg_id = CW_MSG_DISCOVERY_REQUEST,
|
||||||
.elem_id = CW_ELEM_WTP_DESCRIPTOR,
|
.elem_id = CW_ELEM_WTP_DESCRIPTOR,
|
||||||
.item_id = CW_ITEM_WTP_DESCRIPTOR,
|
.item_id = CW_ITEM_WTP_DESCRIPTOR,
|
||||||
.out = cw_out_wtp_descriptor,
|
.out = capwap_out_wtp_descriptor,
|
||||||
//.get = cw_out_get_outgoing,
|
//.get = cw_out_get_outgoing,
|
||||||
.mand = 1
|
.mand = 1
|
||||||
}
|
}
|
||||||
|
@ -1,15 +1,18 @@
|
|||||||
#ifndef __MOD_CAPWAP_H
|
#ifndef __MOD_CAPWAP_H
|
||||||
#define __MOD_CAPWAP_H
|
#define __MOD_CAPWAP_H
|
||||||
|
|
||||||
struct mod_ac * mod_capwap_ac();
|
struct mod_ac *mod_capwap_ac();
|
||||||
struct mod_wtp * mod_capwap_wtp();
|
struct mod_wtp *mod_capwap_wtp();
|
||||||
|
|
||||||
|
|
||||||
extern int capwap_in_wtp_descriptor(struct conn *conn, struct cw_action_in *a, uint8_t * data,
|
extern int capwap_in_wtp_descriptor(struct conn *conn, struct cw_action_in *a,
|
||||||
int len, struct sockaddr *from);
|
uint8_t * data, int len, struct sockaddr *from);
|
||||||
|
|
||||||
int capwap_in_wtp_board_data(struct conn *conn, struct cw_action_in *a, uint8_t * data,
|
extern int capwap_in_wtp_board_data(struct conn *conn, struct cw_action_in *a,
|
||||||
int len, struct sockaddr *from);
|
uint8_t * data, int len, struct sockaddr *from);
|
||||||
|
|
||||||
|
extern int capwap_out_wtp_descriptor(struct conn *conn, struct cw_action_out *a,
|
||||||
|
uint8_t * dst);
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -185,8 +185,8 @@ int read_config(const char * filename){
|
|||||||
|
|
||||||
str = uci_lookup_option_string(ctx,section,"hardware_version");
|
str = uci_lookup_option_string(ctx,section,"hardware_version");
|
||||||
if (str){
|
if (str){
|
||||||
uint8_t * s = bstr_create_from_cfgstr(str);
|
uint8_t * s = bstr16_create_from_cfgstr(str);
|
||||||
bstr_replace(&conf_hardware_version,s);
|
bstr16_replace(&conf_hardware_version,s);
|
||||||
}
|
}
|
||||||
|
|
||||||
str = uci_lookup_option_string(ctx,section,"bootloader_version");
|
str = uci_lookup_option_string(ctx,section,"bootloader_version");
|
||||||
|
@ -38,29 +38,29 @@ struct cw_actiondef capwap_actions;
|
|||||||
|
|
||||||
bstr_t get_base_rmac()
|
bstr_t get_base_rmac()
|
||||||
{
|
{
|
||||||
// static uint8_t rm[8]={0x00,0x4a,0x99,0x02,0xfa,0xc0};
|
// static uint8_t rm[8]={0x00,0x4a,0x99,0x02,0xfa,0xc0};
|
||||||
|
|
||||||
static uint8_t rm[8]={0x00,0x4a,0x99,0x02,0xfa,0xc0};
|
static uint8_t rm[8] = { 0x00, 0x4a, 0x99, 0x02, 0xfa, 0xc0 };
|
||||||
return bstr_create(rm,6);
|
return bstr_create(rm, 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int handle_update_req(struct conn *conn, struct cw_action_in *a, uint8_t * data,
|
int handle_update_req(struct conn *conn, struct cw_action_in *a, uint8_t * data,
|
||||||
int len,struct sockaddr *from)
|
int len, struct sockaddr *from)
|
||||||
{
|
{
|
||||||
MAVLITER_DEFINE(it,conn->incomming);
|
MAVLITER_DEFINE(it, conn->incomming);
|
||||||
|
|
||||||
mavliter_foreach(&it){
|
mavliter_foreach(&it) {
|
||||||
mbag_item_t * item = mavliter_get(&it);
|
mbag_item_t *item = mavliter_get(&it);
|
||||||
|
|
||||||
// printf("MBAG ITEM GOT: %d\n",item->id);
|
// printf("MBAG ITEM GOT: %d\n",item->id);
|
||||||
if (item->id == CW_ITEM_WTP_NAME) {
|
if (item->id == CW_ITEM_WTP_NAME) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
cw_dbg(DBG_INFO,"Saving configuration ...");
|
cw_dbg(DBG_INFO, "Saving configuration ...");
|
||||||
cfg_to_json();
|
cfg_to_json();
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -77,8 +77,7 @@ int main()
|
|||||||
if (!read_config("./wtp_uci.conf")) {
|
if (!read_config("./wtp_uci.conf")) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
// cw_dbg_opt_level = conf_dbg_level;
|
||||||
// cw_dbg_opt_level = conf_dbg_level;
|
|
||||||
|
|
||||||
wtpconf_init();
|
wtpconf_init();
|
||||||
|
|
||||||
@ -100,33 +99,33 @@ mavl_destroy(b);
|
|||||||
struct conn *conn = the_conn;
|
struct conn *conn = the_conn;
|
||||||
|
|
||||||
conn->radios = mbag_i_create();
|
conn->radios = mbag_i_create();
|
||||||
// mbag_set_mbag(conn->radios,0,mbag_create());
|
// mbag_set_mbag(conn->radios,0,mbag_create());
|
||||||
// mbag_set_mbag(conn->radios,1,mbag_create());
|
// mbag_set_mbag(conn->radios,1,mbag_create());
|
||||||
// mbag_set_mbag(conn->radios,0xff,mbag_create());
|
// mbag_set_mbag(conn->radios,0xff,mbag_create());
|
||||||
|
|
||||||
|
|
||||||
// mbag_t r;
|
|
||||||
// r = mbag_get_mbag(conn->radios,0,NULL);
|
|
||||||
// mbag_set_dword(r,CW_RADIO_TYPE,1);
|
|
||||||
// r = mbag_get_mbag(conn->radios,1,NULL);
|
|
||||||
// mbag_set_dword(r,CW_RADIO_TYPE,2);
|
|
||||||
// r = mbag_get_mbag(conn->radios,1,NULL);
|
|
||||||
// mbag_set_dword(r,CW_RADIO_TYPE,1);
|
|
||||||
|
|
||||||
|
|
||||||
// cw_register_actions_cipwap_wtp(&capwap_actions);
|
// mbag_t r;
|
||||||
// cw_register_actions_capwap_80211_wtp(&capwap_actions);
|
// r = mbag_get_mbag(conn->radios,0,NULL);
|
||||||
|
// mbag_set_dword(r,CW_RADIO_TYPE,1);
|
||||||
|
// r = mbag_get_mbag(conn->radios,1,NULL);
|
||||||
|
// mbag_set_dword(r,CW_RADIO_TYPE,2);
|
||||||
|
// r = mbag_get_mbag(conn->radios,1,NULL);
|
||||||
|
// mbag_set_dword(r,CW_RADIO_TYPE,1);
|
||||||
|
|
||||||
struct mod_wtp * mod = modload_wtp ("capwap");
|
|
||||||
|
// cw_register_actions_cipwap_wtp(&capwap_actions);
|
||||||
|
// cw_register_actions_capwap_80211_wtp(&capwap_actions);
|
||||||
|
|
||||||
|
struct mod_wtp *mod = modload_wtp("capwap");
|
||||||
if (!mod) {
|
if (!mod) {
|
||||||
printf ("Can't load mod capwap\n");
|
printf("Can't load mod capwap\n");
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
conn->detected=1;
|
conn->detected = 1;
|
||||||
|
|
||||||
|
mod->register_actions(&capwap_actions);
|
||||||
|
|
||||||
mod->register_actions(&capwap_actions);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -143,55 +142,60 @@ mavl_destroy(b);
|
|||||||
conn->outgoing = mbag_create();
|
conn->outgoing = mbag_create();
|
||||||
conn->incomming = mbag_create();
|
conn->incomming = mbag_create();
|
||||||
conn->local = mbag_create();
|
conn->local = mbag_create();
|
||||||
conn->base_rmac=get_base_rmac();
|
conn->base_rmac = get_base_rmac();
|
||||||
|
|
||||||
conn->capwap_mode = CW_MODE_CAPWAP;
|
conn->capwap_mode = CW_MODE_CAPWAP;
|
||||||
conn->capwap_mode = CW_MODE_CISCO;
|
conn->capwap_mode = CW_MODE_CISCO;
|
||||||
|
|
||||||
the_conn->strict_capwap=0;
|
the_conn->strict_capwap = 0;
|
||||||
|
|
||||||
|
|
||||||
conn->config=mbag_create();
|
conn->config = mbag_create();
|
||||||
|
|
||||||
// setup_conf(conn);
|
// setup_conf(conn);
|
||||||
cfg_from_json(conn);
|
cfg_from_json(conn);
|
||||||
cfg_to_json();
|
cfg_to_json();
|
||||||
|
|
||||||
mbag_t board_data = mbag_create();
|
mbag_t board_data = mbag_create();
|
||||||
mbag_set_dword(board_data, CW_ITEM_WTP_BOARD_VENDOR, conf_vendor_id);
|
mbag_set_dword(board_data, CW_ITEM_WTP_BOARD_VENDOR, conf_vendor_id);
|
||||||
|
|
||||||
|
|
||||||
mbag_set_bstrn(board_data, CW_ITEM_WTP_BOARD_MACADDRESS, conf_macaddress,
|
mbag_set_bstrn(board_data, CW_ITEM_WTP_BOARD_MACADDRESS, conf_macaddress,
|
||||||
conf_macaddress_len);
|
conf_macaddress_len);
|
||||||
mbag_set_bstr16n(board_data, CW_ITEM_WTP_BOARD_SERIALNO,
|
mbag_set_bstr16n(board_data, CW_ITEM_WTP_BOARD_SERIALNO,
|
||||||
bstr_data(conf_serial_no), bstr_len(conf_serial_no));
|
bstr_data(conf_serial_no), bstr_len(conf_serial_no));
|
||||||
|
|
||||||
|
mbag_set_bstr16n(board_data, CW_ITEM_WTP_BOARD_MODELNO, bstr_data(conf_model_no),
|
||||||
|
bstr_len(conf_model_no));
|
||||||
|
|
||||||
mbag_set_bstr16n(board_data, CW_ITEM_WTP_BOARD_MODELNO, bstr_data(conf_model_no),bstr_len(conf_model_no));
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mbag_set_mbag(conn->config, CW_ITEM_WTP_BOARD_DATA, board_data);
|
mbag_set_mbag(conn->config, CW_ITEM_WTP_BOARD_DATA, board_data);
|
||||||
|
|
||||||
// hw = bstrv_create(conf_vendor_id,conf_hardware_version
|
bstrv_t hw =
|
||||||
//mbag_set_bstr16(conn->config, CW_ITEM_WTP_HARDWARE_VERSION,conf_hardware_version);
|
bstrv_create(conf_vendor_id, bstr16_data(conf_hardware_version),
|
||||||
|
bstr16_len(conf_hardware_version));
|
||||||
|
|
||||||
|
|
||||||
|
mbag_set_bstr16(conn->config, CW_ITEM_WTP_HARDWARE_VERSION, hw);
|
||||||
//mbag_set_bstr16(conn->config, CW_ITEM_WTP_SOFTWARE_VERSION,conf_software_version);
|
//mbag_set_bstr16(conn->config, CW_ITEM_WTP_SOFTWARE_VERSION,conf_software_version);
|
||||||
|
|
||||||
printf("Board_data %p\n",board_data);
|
printf("Board_data %p\n", board_data);
|
||||||
|
|
||||||
mbag_t mb = mbag_get_mbag(conn->config,CW_ITEM_WTP_BOARD_DATA,NULL);
|
mbag_t mb = mbag_get_mbag(conn->config, CW_ITEM_WTP_BOARD_DATA, NULL);
|
||||||
printf("mbag %p\n",mb);
|
printf("mbag %p\n", mb);
|
||||||
|
|
||||||
|
|
||||||
cw_acpriolist_t acprios = cw_acpriolist_create();
|
cw_acpriolist_t acprios = cw_acpriolist_create();
|
||||||
cw_acpriolist_set(acprios,"Master AC",strlen("Master AC"),1);
|
cw_acpriolist_set(acprios, "Master AC", strlen("Master AC"), 1);
|
||||||
cw_acpriolist_set(acprios,"AC8new",strlen("AC8new"),12);
|
cw_acpriolist_set(acprios, "AC8new", strlen("AC8new"), 12);
|
||||||
|
|
||||||
|
|
||||||
// mbag_set_str(conn->local,CW_ITEM_LOCATION_DATA,"Berlin");
|
// mbag_set_str(conn->local,CW_ITEM_LOCATION_DATA,"Berlin");
|
||||||
// mbag_set_str(conn->local,CW_ITEM_WTP_NAME,"WTP Tube");
|
// mbag_set_str(conn->local,CW_ITEM_WTP_NAME,"WTP Tube");
|
||||||
|
|
||||||
mbag_set_byte(conn->local,CW_ITEM_WTP_MAC_TYPE,0);
|
mbag_set_byte(conn->local, CW_ITEM_WTP_MAC_TYPE, 0);
|
||||||
mbag_set_byte(conn->local,CW_ITEM_WTP_FRAME_TUNNEL_MODE,0);
|
mbag_set_byte(conn->local, CW_ITEM_WTP_FRAME_TUNNEL_MODE, 0);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -206,8 +210,8 @@ printf("mbag %p\n",mb);
|
|||||||
if (!join())
|
if (!join())
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
mavl_destroy(conn->incomming);
|
mavl_destroy(conn->incomming);
|
||||||
conn->incomming=conn->config;
|
conn->incomming = conn->config;
|
||||||
configure();
|
configure();
|
||||||
changestate();
|
changestate();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user