Some corrections.
FossilOrigin-Name: a3e4b7ae78de75925d43c5d92cf2bdd847fb45bfa48c6e4098c9101fd48fb6fa
This commit is contained in:
parent
b08e39bf2b
commit
fa7ed0e471
@ -32,7 +32,7 @@ SOCKOBJS=sock_create.o sock_copyaddr.o sock_strtoaddr.o sock_cmpaddr.o sock_addr
|
|||||||
sock_addrinit.o \
|
sock_addrinit.o \
|
||||||
sock_set_dontfrag.o \
|
sock_set_dontfrag.o \
|
||||||
sock_get_primary_if.o \
|
sock_get_primary_if.o \
|
||||||
sock_receive.o \
|
#sock_receive.o \
|
||||||
|
|
||||||
LOGOBJS=cw_log.o \
|
LOGOBJS=cw_log.o \
|
||||||
cw_log_debug.o \
|
cw_log_debug.o \
|
||||||
@ -54,6 +54,7 @@ UTILOBJS= \
|
|||||||
cw_foreach_msgelem.o \
|
cw_foreach_msgelem.o \
|
||||||
avltree.o \
|
avltree.o \
|
||||||
avltree_get_node.o \
|
avltree_get_node.o \
|
||||||
|
avltree_get.o \
|
||||||
avltree_del_all.o \
|
avltree_del_all.o \
|
||||||
avltree_foreach_lr.o \
|
avltree_foreach_lr.o \
|
||||||
avltree_foreach_rl.o \
|
avltree_foreach_rl.o \
|
||||||
@ -91,7 +92,6 @@ LWAPPCISCOOBJS = \
|
|||||||
|
|
||||||
|
|
||||||
CAPWAPOBJS= \
|
CAPWAPOBJS= \
|
||||||
cwmsg_init.o \
|
|
||||||
cwmsg_init_echo_request.o \
|
cwmsg_init_echo_request.o \
|
||||||
cwmsg_addelem.o \
|
cwmsg_addelem.o \
|
||||||
cwmsg_vaddelem.o \
|
cwmsg_vaddelem.o \
|
||||||
@ -101,7 +101,6 @@ CAPWAPOBJS= \
|
|||||||
cwmsg_addelem_cw_local_ip_addr.o \
|
cwmsg_addelem_cw_local_ip_addr.o \
|
||||||
cwmsg_addelem_mtu_discovery_padding.o \
|
cwmsg_addelem_mtu_discovery_padding.o \
|
||||||
cwmsg_addelem_ac_timestamp.o \
|
cwmsg_addelem_ac_timestamp.o \
|
||||||
cw_addelem_vendor_specific_payload.o \
|
|
||||||
cwmsg_addelem_maximum_message_length.o \
|
cwmsg_addelem_maximum_message_length.o \
|
||||||
cwmsg_addelem_image_identifier.o \
|
cwmsg_addelem_image_identifier.o \
|
||||||
cwmsg_send.o \
|
cwmsg_send.o \
|
||||||
@ -182,6 +181,7 @@ CAPWAPOBJS= \
|
|||||||
format.o
|
format.o
|
||||||
|
|
||||||
|
|
||||||
|
# cw_addelem_vendor_specific_payload.o \
|
||||||
#cw_in_wtp_name.o \
|
#cw_in_wtp_name.o \
|
||||||
#cw_msgtostr.o \
|
#cw_msgtostr.o \
|
||||||
#cw_msgelemtostr.o \
|
#cw_msgelemtostr.o \
|
||||||
@ -190,6 +190,7 @@ CAPWAPOBJS= \
|
|||||||
#cwmsg_addelem_wtp_board_data.o \
|
#cwmsg_addelem_wtp_board_data.o \
|
||||||
#wtpinfo_readelem_wtp_board_data.o \
|
#wtpinfo_readelem_wtp_board_data.o \
|
||||||
# cw_send_image_data_response.o \
|
# cw_send_image_data_response.o \
|
||||||
|
#cwmsg_init.o \
|
||||||
|
|
||||||
#cw_ianavendoridtostr.o \
|
#cw_ianavendoridtostr.o \
|
||||||
#cwmsg_addelem_result_code.o \
|
#cwmsg_addelem_result_code.o \
|
||||||
|
@ -112,4 +112,12 @@
|
|||||||
0,0
|
0,0
|
||||||
|
|
||||||
|
|
||||||
|
#define CW_ACTION_IN_CAPWAP_CONTROL_IPV4_ADDRESS \
|
||||||
|
CW_ELEM_CAPWAP_CONTROL_IPV4_ADDRESS, /* Element ID*/ \
|
||||||
|
cw_in_generic, 0, /* start/end callback */ \
|
||||||
|
CW_ITEMTYPE_DATA, /* Type of element */ \
|
||||||
|
CW_ITEM_CAPWAP_CONTROL_IP_ADDR, /* ID to use store */ \
|
||||||
|
6, 6 /* min/max length */
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -30,7 +30,7 @@ cw_action_in_t capwap_actions_wtp_in[] = {
|
|||||||
|
|
||||||
/* ------------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------------- */
|
||||||
|
|
||||||
/* Message Discovery Request */
|
/* Message Discovery Response */
|
||||||
{0, 0, CW_STATE_DISCOVERY, CW_MSG_DISCOVERY_RESPONSE, 0,
|
{0, 0, CW_STATE_DISCOVERY, CW_MSG_DISCOVERY_RESPONSE, 0,
|
||||||
0, 0}
|
0, 0}
|
||||||
,
|
,
|
||||||
@ -44,7 +44,8 @@ cw_action_in_t capwap_actions_wtp_in[] = {
|
|||||||
CW_ACTION_IN_VENDOR_SPECIFIC_PAYLOAD, 1}
|
CW_ACTION_IN_VENDOR_SPECIFIC_PAYLOAD, 1}
|
||||||
,
|
,
|
||||||
|
|
||||||
|
/* Element CAPWAP Control IPv4 Address */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{0, 0, 0}
|
{0, 0, 0}
|
||||||
|
@ -170,7 +170,7 @@ struct conn *conn_create_noq(int sock, struct sockaddr *addr);
|
|||||||
|
|
||||||
|
|
||||||
extern int conn_send_cwmsg(struct conn *conn, struct cwmsg *cwmsg);
|
extern int conn_send_cwmsg(struct conn *conn, struct cwmsg *cwmsg);
|
||||||
extern void conn_process_packet(struct conn *conn, uint8_t * packet, int len,
|
extern int conn_process_packet(struct conn *conn, uint8_t * packet, int len,
|
||||||
int (*cb) (void *, uint8_t *,int len), void *cbarg);
|
int (*cb) (void *, uint8_t *,int len), void *cbarg);
|
||||||
|
|
||||||
extern uint8_t *conn_get_message(struct conn *conn);
|
extern uint8_t *conn_get_message(struct conn *conn);
|
||||||
|
@ -161,13 +161,13 @@ static void cw_dbg_packet(struct conn * conn, uint8_t * packet, int len)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
void conn_process_packet(struct conn * conn, uint8_t *packet, int len,int (*cb)(void*,uint8_t *,int),void *cbarg)
|
int conn_process_packet(struct conn * conn, uint8_t *packet, int len,int (*cb)(void*,uint8_t *,int),void *cbarg)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (len<8){
|
if (len<8){
|
||||||
/* packet too short */
|
/* packet too short */
|
||||||
cw_dbg(DBG_CW_PKT_ERR,"Discarding packet from %s, packet too short, len=%d",sock_addr2str(&conn->addr),len);
|
cw_dbg(DBG_CW_PKT_ERR,"Discarding packet from %s, packet too short, len=%d",sock_addr2str(&conn->addr),len);
|
||||||
return;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int preamble = cw_get_hdr_preamble(packet);
|
int preamble = cw_get_hdr_preamble(packet);
|
||||||
@ -175,12 +175,12 @@ void conn_process_packet(struct conn * conn, uint8_t *packet, int len,int (*cb)(
|
|||||||
if ( (preamble & 0xf0) != CW_VERSION){
|
if ( (preamble & 0xf0) != CW_VERSION){
|
||||||
/* wrong version */
|
/* wrong version */
|
||||||
cw_dbg(DBG_CW_PKT_ERR,"Discarding packet from %s, wrong version, version=%d",sock_addr2str(&conn->addr),(preamble&0xf0)>>8);
|
cw_dbg(DBG_CW_PKT_ERR,"Discarding packet from %s, wrong version, version=%d",sock_addr2str(&conn->addr),(preamble&0xf0)>>8);
|
||||||
return;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (preamble & 0xf ) {
|
if (preamble & 0xf ) {
|
||||||
/* decode dtls */
|
/* decode dtls */
|
||||||
return;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* log this packet */
|
/* log this packet */
|
||||||
@ -194,7 +194,7 @@ void conn_process_packet(struct conn * conn, uint8_t *packet, int len,int (*cb)(
|
|||||||
if (payloadlen<0){
|
if (payloadlen<0){
|
||||||
cw_dbg(DBG_CW_PKT_ERR,"Discarding packet from %s, header length greater than len, hlen=%d",sock_addr2str(&conn->addr),offs);
|
cw_dbg(DBG_CW_PKT_ERR,"Discarding packet from %s, header length greater than len, hlen=%d",sock_addr2str(&conn->addr),offs);
|
||||||
/* EINVAL */
|
/* EINVAL */
|
||||||
return;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -211,7 +211,7 @@ void conn_process_packet(struct conn * conn, uint8_t *packet, int len,int (*cb)(
|
|||||||
if (cw_get_hdr_rmac_len(packet)+8>offs){
|
if (cw_get_hdr_rmac_len(packet)+8>offs){
|
||||||
/* wrong rmac size */
|
/* wrong rmac size */
|
||||||
cw_dbg(DBG_CW_PKT_ERR,"Discarding packet, wrong R-MAC size, size=%d",*(packet+8));
|
cw_dbg(DBG_CW_PKT_ERR,"Discarding packet, wrong R-MAC size, size=%d",*(packet+8));
|
||||||
return;
|
return 0;
|
||||||
}
|
}
|
||||||
// memcpy(cwrmsg.rmac, packet+8,8);
|
// memcpy(cwrmsg.rmac, packet+8,8);
|
||||||
}
|
}
|
||||||
@ -224,7 +224,7 @@ void conn_process_packet(struct conn * conn, uint8_t *packet, int len,int (*cb)(
|
|||||||
uint8_t * f;
|
uint8_t * f;
|
||||||
f = fragman_add(conn->fragman, packet,offs,payloadlen);
|
f = fragman_add(conn->fragman, packet,offs,payloadlen);
|
||||||
if (f==NULL)
|
if (f==NULL)
|
||||||
return;
|
return 0;
|
||||||
|
|
||||||
cw_dbg_packet(conn,f+4,*(uint32_t*)f);
|
cw_dbg_packet(conn,f+4,*(uint32_t*)f);
|
||||||
|
|
||||||
@ -244,7 +244,7 @@ void conn_process_packet(struct conn * conn, uint8_t *packet, int len,int (*cb)(
|
|||||||
process_message(conn,f+4,*(uint32_t*)f,cb,cbarg);
|
process_message(conn,f+4,*(uint32_t*)f,cb,cbarg);
|
||||||
|
|
||||||
free (f);
|
free (f);
|
||||||
return;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//extern int cw_process_msg(struct conn * conn,uint8_t*msg,int len);
|
//extern int cw_process_msg(struct conn * conn,uint8_t*msg,int len);
|
||||||
@ -258,7 +258,7 @@ void conn_process_packet(struct conn * conn, uint8_t *packet, int len,int (*cb)(
|
|||||||
|
|
||||||
//msg_4*((val >> 19) & 0x1f);
|
//msg_4*((val >> 19) & 0x1f);
|
||||||
process_message(conn,packet,len,cb,cbarg);
|
process_message(conn,packet,len,cb,cbarg);
|
||||||
return;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -277,7 +277,7 @@ int cw_read_messages(struct conn *conn)
|
|||||||
if (n > 0)
|
if (n > 0)
|
||||||
conn_process_packet(conn, buf, n, cw_process_msg, conn);
|
conn_process_packet(conn, buf, n, cw_process_msg, conn);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
#include "capwap.h"
|
#include "capwap.h"
|
||||||
#include "cw_log.h"
|
#include "cw_log.h"
|
||||||
|
#include "sock.h" //Tube
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* @brief Implementation of Vendor Specific Payload
|
* @brief Implementation of Vendor Specific Payload
|
||||||
@ -19,6 +20,8 @@ int cw_in_vendor_specific_payload(struct conn *conn,struct cw_action_in * a,uint
|
|||||||
|
|
||||||
af = cw_actionlist_in_get(conn->actions->in,&as);
|
af = cw_actionlist_in_get(conn->actions->in,&as);
|
||||||
|
|
||||||
|
cw_dbg(DBG_ELEM,"From might be: %s\n",sock_addr2str(&conn->addr));
|
||||||
|
|
||||||
if (!af) {
|
if (!af) {
|
||||||
cw_log(DBG_ELEM,"Can't handle Vendor Specific Payload %s/%d, in msg %d (%s) in %s state.",
|
cw_log(DBG_ELEM,"Can't handle Vendor Specific Payload %s/%d, in msg %d (%s) in %s state.",
|
||||||
cw_strvendor(as.vendor_id),
|
cw_strvendor(as.vendor_id),
|
||||||
|
@ -20,4 +20,4 @@ export LDFLAGS
|
|||||||
|
|
||||||
cmake ..
|
cmake ..
|
||||||
make uci cli
|
make uci cli
|
||||||
|
make install
|
||||||
|
@ -57,6 +57,7 @@ static int run_discovery(struct conn *conn)
|
|||||||
while (!cw_timer_timeout(timer)
|
while (!cw_timer_timeout(timer)
|
||||||
&& conn->capwap_state == CW_STATE_DISCOVERY) {
|
&& conn->capwap_state == CW_STATE_DISCOVERY) {
|
||||||
cw_read_messages(conn);
|
cw_read_messages(conn);
|
||||||
|
printf ("Got one annswer\n");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user