WTP joins now a Cisco vwlc via mod cisco.
FossilOrigin-Name: 21ef75e0a9c1bd22396902887a13ebd383bbbf97fe30834c8232f86ef6bb8eb6
This commit is contained in:
		@ -28,6 +28,7 @@ struct mbag_item *cw_out_get_local(struct conn *conn, struct cw_action_out *a)
 | 
			
		||||
 | 
			
		||||
struct mbag_item *cw_out_get_config(struct conn *conn, struct cw_action_out *a)
 | 
			
		||||
{
 | 
			
		||||
//	printf("cw get config (%d %d %s) %p\n",a->msg_id, a->elem_id,a->item_id, conn->config);
 | 
			
		||||
	return mbag_get(conn->config,a->item_id);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -15,6 +15,7 @@ int cw_in_check_generic_resp(struct conn *conn, struct cw_action_in *a, uint8_t
 | 
			
		||||
	/* Check if the message contains a result code and
 | 
			
		||||
	   if it indicates an errror */
 | 
			
		||||
	mbag_item_t * result = mbag_get(conn->incomming,CW_ITEM_RESULT_CODE);
 | 
			
		||||
	
 | 
			
		||||
	if  (result ) {
 | 
			
		||||
		if (!cw_rcok(result->dword)){
 | 
			
		||||
			return result->dword;
 | 
			
		||||
@ -35,8 +36,9 @@ int cw_in_check_generic_resp(struct conn *conn, struct cw_action_in *a, uint8_t
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* if we hava a result code, return it */
 | 
			
		||||
	if ( result ) 
 | 
			
		||||
	if ( result ) {
 | 
			
		||||
		return result->dword;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -83,12 +83,13 @@ int cw_put_msg(struct conn *conn, uint8_t * rawout)
 | 
			
		||||
			/* Element is from next msg, close action */
 | 
			
		||||
			break;
 | 
			
		||||
		}
 | 
			
		||||
		if (ae->out) {
 | 
			
		||||
		int l=0;
 | 
			
		||||
		if (ae->out) {
 | 
			
		||||
 | 
			
		||||
		//	printf("Out Call with len =%d\n",len);
 | 
			
		||||
 | 
			
		||||
			l= ae->out(conn, ae, dst+len); 
 | 
			
		||||
//			cw_dbg_elem(DBG_ELEM, conn, ae->msg_id, ae->elem_id, dst+len,l);
 | 
			
		||||
 | 
			
		||||
		//	printf("Returned len = %d\n",l);
 | 
			
		||||
 | 
			
		||||
@ -169,6 +170,11 @@ int cw_put_custom_msg(struct conn *conn, uint8_t * rawout, mavl_conststr_t elems
 | 
			
		||||
 | 
			
		||||
		DBGX("Put %d %i %p\n",ae->msg_id,ae->elem_id,ae->item_id);
 | 
			
		||||
		DBGX("Elem ID %s",ae->item_id);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		
 | 
			
		||||
		if ( ae->item_id ) {
 | 
			
		||||
			DBGX("Item ID: %s %p",ae->item_id,CW_ITEM_NONE);
 | 
			
		||||
		}
 | 
			
		||||
@ -177,8 +183,8 @@ int cw_put_custom_msg(struct conn *conn, uint8_t * rawout, mavl_conststr_t elems
 | 
			
		||||
			/* Element is from next msg, close action */
 | 
			
		||||
			break;
 | 
			
		||||
		}
 | 
			
		||||
		if (ae->out) {
 | 
			
		||||
		int l=0;
 | 
			
		||||
		if (ae->out) {
 | 
			
		||||
			l= ae->out(conn, ae, dst+len); 
 | 
			
		||||
			len +=l;
 | 
			
		||||
//			cw_dbg_elem_colored(DBG_ELEM, conn, ae->msg_id, ae->elem_id,
 | 
			
		||||
@ -186,6 +192,10 @@ int cw_put_custom_msg(struct conn *conn, uint8_t * rawout, mavl_conststr_t elems
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
//		printf("DEBUGGER\n");
 | 
			
		||||
//		cw_dbg_elem(DBG_ELEM, conn, ae->msg_id, ae->elem_id, 0,l);
 | 
			
		||||
		
 | 
			
		||||
		
 | 
			
		||||
//cw_dbg_elem_colored(DBG_ELEM,"Adding element %d to msg %d, len = %d",ae->msg_id,ae->elem_id,l);
 | 
			
		||||
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
@ -198,28 +198,28 @@ int read_config(const char * filename){
 | 
			
		||||
 | 
			
		||||
	str = uci_lookup_option_string(ctx,section,"board_id");
 | 
			
		||||
	if (str){
 | 
			
		||||
		uint8_t * s = bstr_create_from_cfgstr(str);
 | 
			
		||||
		bstr_replace(&conf_board_id,s);
 | 
			
		||||
		uint8_t * s = bstr16_create_from_cfgstr(str);
 | 
			
		||||
		bstr16_replace(&conf_board_id,s);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	str = uci_lookup_option_string(ctx,section,"board_revision");
 | 
			
		||||
	if (str){
 | 
			
		||||
		uint8_t * s = bstr_create_from_cfgstr(str);
 | 
			
		||||
		bstr_replace(&conf_board_revision,s);
 | 
			
		||||
		uint8_t * s = bstr16_create_from_cfgstr(str);
 | 
			
		||||
		bstr16_replace(&conf_board_revision,s);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	str = uci_lookup_option_string(ctx,section,"serial_no");
 | 
			
		||||
	if (str){
 | 
			
		||||
		uint8_t * s = bstr_create_from_cfgstr(str);
 | 
			
		||||
		bstr_replace(&conf_serial_no,s);
 | 
			
		||||
		uint8_t * s = bstr16_create_from_cfgstr(str);
 | 
			
		||||
		bstr16_replace(&conf_serial_no,s);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	str = uci_lookup_option_string(ctx,section,"model_no");
 | 
			
		||||
	if (str){
 | 
			
		||||
		uint8_t * s = bstr_create_from_cfgstr(str);
 | 
			
		||||
		bstr_replace(&conf_model_no,s);
 | 
			
		||||
		uint8_t * s = bstr16_create_from_cfgstr(str);
 | 
			
		||||
		bstr16_replace(&conf_model_no,s);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
@ -241,7 +241,7 @@ int discovery()
 | 
			
		||||
{
 | 
			
		||||
	struct conn *conn = get_conn();
 | 
			
		||||
 | 
			
		||||
	printf("Raqddios = %d\n",conn->radios->count);
 | 
			
		||||
	printf("Radios = %d\n",conn->radios->count);
 | 
			
		||||
 | 
			
		||||
	cw_run_discovery(conn, "255.255.255.255");
 | 
			
		||||
	conn->capwap_state=CW_STATE_JOIN;
 | 
			
		||||
 | 
			
		||||
@ -182,7 +182,7 @@ int run_join(struct conn *conn)
 | 
			
		||||
//      conn_send_msg(conn, conn->req_buffer);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	mbag_del_all(conn->incomming);
 | 
			
		||||
	int rc = cw_send_request(conn, CW_MSG_JOIN_REQUEST);
 | 
			
		||||
 | 
			
		||||
	if (!cw_rcok(rc)) {
 | 
			
		||||
@ -211,6 +211,8 @@ int join()
 | 
			
		||||
 | 
			
		||||
	printf("Join\n");
 | 
			
		||||
 | 
			
		||||
	mbag_del_all(conn->incomming);
 | 
			
		||||
 | 
			
		||||
	cw_aciplist_t iplist =
 | 
			
		||||
	    mbag_get_mavl(conn->local, CW_ITEM_CAPWAP_CONTROL_IP_ADDRESS_LIST);
 | 
			
		||||
	if (!iplist) {
 | 
			
		||||
 | 
			
		||||
@ -83,6 +83,48 @@ int setup_conf(struct conn *  conn)
 | 
			
		||||
	if (!n) {
 | 
			
		||||
		mbag_set_word(conn->config, CW_ITEM_STATISTICS_TIMER, 120);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	mbag_t board_data=mbag_get_mbag_c(conn->config,CW_ITEM_WTP_BOARD_DATA,mbag_create);
 | 
			
		||||
 | 
			
		||||
	printf("We have bd %p\n",board_data);
 | 
			
		||||
 | 
			
		||||
//	mbag_set_mbag(conn->config, CW_ITEM_WTP_BOARD_DATA, board_data);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	uint32_t vendor = mbag_get_dword(board_data,CW_ITEM_WTP_BOARD_VENDOR,conf_vendor_id);
 | 
			
		||||
	mbag_set_dword(board_data, CW_ITEM_WTP_BOARD_VENDOR, vendor);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	mbag_set_bstrn(board_data, CW_ITEM_WTP_BOARD_MACADDRESS, 
 | 
			
		||||
			 conf_macaddress, conf_macaddress_len);
 | 
			
		||||
 | 
			
		||||
//	mbag_set_bstr16n(board_data, CW_ITEM_WTP_BOARD_MODELNO, bstr_data(conf_model_no),
 | 
			
		||||
//			 bstr_len(conf_model_no));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	return 0;
 | 
			
		||||
 | 
			
		||||
@ -14,9 +14,11 @@
 | 
			
		||||
 | 
			
		||||
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,0x3a,0x99,0x02,0xfa,0xc0};
 | 
			
		||||
	static  uint8_t rm[8]={0x00,0x3a,0x99,0x03,0xfa,0xc0};
 | 
			
		||||
 | 
			
		||||
	return bstr_create(rm, 6);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -200,28 +200,28 @@ int main()
 | 
			
		||||
	mod_init_config(mod,conn->config);
 | 
			
		||||
	cfg_to_json();
 | 
			
		||||
 | 
			
		||||
	mbag_t board_data = mbag_create();
 | 
			
		||||
	mbag_set_dword(board_data, CW_ITEM_WTP_BOARD_VENDOR, conf_vendor_id);
 | 
			
		||||
//	mbag_t board_data = mbag_create();
 | 
			
		||||
//	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,
 | 
			
		||||
		       conf_macaddress_len);
 | 
			
		||||
	mbag_set_bstr16n(board_data, CW_ITEM_WTP_BOARD_SERIALNO,
 | 
			
		||||
			 bstr_data(conf_serial_no), bstr_len(conf_serial_no));
 | 
			
		||||
//	mbag_set_bstrn(board_data, CW_ITEM_WTP_BOARD_MACADDRESS, conf_macaddress,
 | 
			
		||||
//		       conf_macaddress_len);
 | 
			
		||||
//	mbag_set_bstr16n(board_data, CW_ITEM_WTP_BOARD_SERIALNO,
 | 
			
		||||
//			 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);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//      mbag_set_bstrv(conn->config, CW_ITEM_WTP_SOFTWARE_VERSION, sw);
 | 
			
		||||
 | 
			
		||||
	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);
 | 
			
		||||
	printf("mbag %p\n", mb);
 | 
			
		||||
 | 
			
		||||
@ -34,11 +34,15 @@ config 'wtp'
 | 
			
		||||
	option discovery_interval	5
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	# capwap mmode
 | 
			
		||||
	# capwap mode
 | 
			
		||||
	# possible values: capwap, cisco
 | 
			
		||||
	# default is "capwap"
 | 
			
		||||
	option	capwap_mode	"capwap"
 | 
			
		||||
 | 
			
		||||
	# bindings mode
 | 
			
		||||
	# possible values: capwpa80211, cisco
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
config 'dbg'
 | 
			
		||||
	# debug options 
 | 
			
		||||
 | 
			
		||||
@ -74,7 +74,7 @@ fi
 | 
			
		||||
if [ "$TYPE" = "cisco-ap" ]
 | 
			
		||||
then
 | 
			
		||||
	PREF="$2-"
 | 
			
		||||
	SUBJ="/C=US/ST=California/L=San Jose/O=Cisco Systems/CN=C1130-0019dbe09327/emailAddress=support@cisco.com"
 | 
			
		||||
	SUBJ="/C=US/ST=California/L=San Jose/O=Cisco Systems/CN=C1130-902b34de9ef1/emailAddress=support@cisco.com"
 | 
			
		||||
 | 
			
		||||
       openssl req -nodes -new -x509 \
 | 
			
		||||
                -sha1 \
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user