Repository : ssh://git@open-mesh.org/batctl
On branch : master
>---------------------------------------------------------------
commit 3f935ce651afe15d5e5ace2a25035e8770d9e3db
Author: Marek Lindner <lindner_marek(a)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(a)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