Repository : ssh://git@open-mesh.org/batctl
On branch : master
commit 3f935ce651afe15d5e5ace2a25035e8770d9e3db Author: Marek Lindner lindner_marek@yahoo.de Date: Tue Apr 23 21:40:03 2013 +0800
batctl: tvlv - convert roaming adv packet to use tvlv unicast packets
Instead of generating roaming specific packets the TVLV unicast API is used to send roaming information.
Signed-off-by: Marek Lindner lindner_marek@yahoo.de
3f935ce651afe15d5e5ace2a25035e8770d9e3db packet.h | 19 ++++++++++--------- tcpdump.c | 30 +----------------------------- tcpdump.h | 1 - 3 files changed, 11 insertions(+), 39 deletions(-)
diff --git a/packet.h b/packet.h index 4675dc4..c4653a5 100644 --- a/packet.h +++ b/packet.h @@ -31,7 +31,6 @@ enum batadv_packettype { BATADV_BCAST = 0x04, BATADV_VIS = 0x05, BATADV_UNICAST_FRAG = 0x06, - BATADV_ROAM_ADV = 0x08, BATADV_UNICAST_4ADDR = 0x09, BATADV_CODED = 0x0a, BATADV_UNICAST_TVLV = 0x0b, @@ -127,12 +126,14 @@ enum batadv_bla_claimframe { * @BATADV_TVLV_DAT: distributed arp table tvlv * @BATADV_TVLV_NC: network coding tvlv * @BATADV_TVLV_TT: translation table tvlv + * @BATADV_TVLV_ROAM: roaming advertisement tvlv */ enum batadv_tvlv_type { BATADV_TVLV_GW = 0x01, BATADV_TVLV_DAT = 0x02, BATADV_TVLV_NC = 0x03, BATADV_TVLV_TT = 0x04, + BATADV_TVLV_ROAM = 0x05, };
/* the destination hardware field in the ARP frame is used to @@ -267,14 +268,6 @@ struct batadv_vis_packet { uint8_t sender_orig[ETH_ALEN]; /* who sent or forwarded this packet */ };
-struct batadv_roam_adv_packet { - struct batadv_header header; - uint8_t reserved; - uint8_t dst[ETH_ALEN]; - uint8_t src[ETH_ALEN]; - uint8_t client[ETH_ALEN]; -} __packed; - /** * struct batadv_coded_packet - network coded packet * @header: common batman packet header and ttl of first included packet @@ -399,4 +392,12 @@ struct batadv_tvlv_tt_change { uint8_t addr[ETH_ALEN]; };
+/** + * struct batadv_tvlv_roam_adv - roaming advertisement + * @client: mac address of roaming client + */ +struct batadv_tvlv_roam_adv { + uint8_t client[ETH_ALEN]; +}; + #endif /* _NET_BATMAN_ADV_PACKET_H_ */ diff --git a/tcpdump.c b/tcpdump.c index aa02c0e..4eae324 100644 --- a/tcpdump.c +++ b/tcpdump.c @@ -55,7 +55,7 @@ if ((size_t)(buff_len) < (check_len)) { \ }
static unsigned short dump_level_all = DUMP_TYPE_BATOGM | DUMP_TYPE_BATICMP | DUMP_TYPE_BATUCAST | - DUMP_TYPE_BATBCAST | DUMP_TYPE_BATVIS | DUMP_TYPE_BATFRAG | DUMP_TYPE_BATTT | DUMP_TYPE_NONBAT; + DUMP_TYPE_BATBCAST | DUMP_TYPE_BATVIS | DUMP_TYPE_BATFRAG | DUMP_TYPE_NONBAT; static unsigned short dump_level;
static void parse_eth_hdr(unsigned char *packet_buff, ssize_t buff_len, int read_opt, int time_printed); @@ -76,7 +76,6 @@ static void tcpdump_usage(void) fprintf(stderr, " \t\t%3d - batman broadcast packets\n", DUMP_TYPE_BATBCAST); fprintf(stderr, " \t\t%3d - batman vis packets\n", DUMP_TYPE_BATVIS); fprintf(stderr, " \t\t%3d - batman fragmented packets\n", DUMP_TYPE_BATFRAG); - fprintf(stderr, " \t\t%3d - batman tt / roaming packets\n", DUMP_TYPE_BATTT); fprintf(stderr, " \t\t%3d - non batman packets\n", DUMP_TYPE_NONBAT); fprintf(stderr, " \t\t%3d - batman ogm & non batman packets\n", DUMP_TYPE_BATOGM | DUMP_TYPE_NONBAT); } @@ -325,29 +324,6 @@ static void dump_vlan(unsigned char *packet_buff, ssize_t buff_len, int read_opt parse_eth_hdr(packet_buff + 4, buff_len - 4, read_opt, time_printed); }
-static void dump_batman_roam(unsigned char *packet_buff, ssize_t buff_len, int read_opt, int time_printed) -{ - struct batadv_roam_adv_packet *roam_adv_packet; - - LEN_CHECK((size_t)buff_len - sizeof(struct ether_header), sizeof(struct batadv_roam_adv_packet), "BAT ROAM"); - - roam_adv_packet = (struct batadv_roam_adv_packet *)(packet_buff + sizeof(struct ether_header)); - - if (!time_printed) - print_time(); - - printf("BAT %s > ", - get_name_by_macaddr((struct ether_addr *)roam_adv_packet->src, read_opt)); - - printf("%s: ROAM, ", - get_name_by_macaddr((struct ether_addr *)roam_adv_packet->dst, read_opt)); - - printf("client %s, ttl %2d, v %d, length %zu\n", - get_name_by_macaddr((struct ether_addr *)roam_adv_packet->client, read_opt), - roam_adv_packet->header.ttl, roam_adv_packet->header.version, - (size_t)buff_len - sizeof(struct ether_header)); -} - static void dump_batman_iv_ogm(unsigned char *packet_buff, ssize_t buff_len, int read_opt, int time_printed) { struct ether_header *ether_header; @@ -581,10 +557,6 @@ static void parse_eth_hdr(unsigned char *packet_buff, ssize_t buff_len, int read if (dump_level & DUMP_TYPE_BATFRAG) dump_batman_frag(packet_buff, buff_len, read_opt, time_printed); break; - case BATADV_ROAM_ADV: - if (dump_level & DUMP_TYPE_BATTT) - dump_batman_roam(packet_buff, buff_len, read_opt, time_printed); - break; case BATADV_UNICAST_4ADDR: if (dump_level & DUMP_TYPE_BATUCAST) dump_batman_4addr(packet_buff, buff_len, read_opt, time_printed); diff --git a/tcpdump.h b/tcpdump.h index 719f998..7698ec7 100644 --- a/tcpdump.h +++ b/tcpdump.h @@ -38,7 +38,6 @@ #define DUMP_TYPE_BATBCAST 8 #define DUMP_TYPE_BATVIS 16 #define DUMP_TYPE_BATFRAG 32 -#define DUMP_TYPE_BATTT 64 #define DUMP_TYPE_NONBAT 128
#define IEEE80211_FCTL_FTYPE 0x0c00