diff options
-rw-r--r-- | net/batman-adv/bridge_loop_avoidance.c | 51 | ||||
-rw-r--r-- | net/batman-adv/bridge_loop_avoidance.h | 12 | ||||
-rw-r--r-- | net/batman-adv/main.h | 11 | ||||
-rw-r--r-- | net/batman-adv/soft-interface.c | 4 | ||||
-rw-r--r-- | net/batman-adv/types.h | 4 |
5 files changed, 49 insertions, 33 deletions
diff --git a/net/batman-adv/bridge_loop_avoidance.c b/net/batman-adv/bridge_loop_avoidance.c index 082189e2e40d..7354063567bd 100644 --- a/net/batman-adv/bridge_loop_avoidance.c +++ b/net/batman-adv/bridge_loop_avoidance.c | |||
@@ -180,7 +180,7 @@ static struct batadv_bla_claim | |||
180 | */ | 180 | */ |
181 | static struct batadv_bla_backbone_gw * | 181 | static struct batadv_bla_backbone_gw * |
182 | batadv_backbone_hash_find(struct batadv_priv *bat_priv, | 182 | batadv_backbone_hash_find(struct batadv_priv *bat_priv, |
183 | uint8_t *addr, short vid) | 183 | uint8_t *addr, unsigned short vid) |
184 | { | 184 | { |
185 | struct batadv_hashtable *hash = bat_priv->bla.backbone_hash; | 185 | struct batadv_hashtable *hash = bat_priv->bla.backbone_hash; |
186 | struct hlist_head *head; | 186 | struct hlist_head *head; |
@@ -257,7 +257,7 @@ batadv_bla_del_backbone_claims(struct batadv_bla_backbone_gw *backbone_gw) | |||
257 | * @claimtype: the type of the claim (CLAIM, UNCLAIM, ANNOUNCE, ...) | 257 | * @claimtype: the type of the claim (CLAIM, UNCLAIM, ANNOUNCE, ...) |
258 | */ | 258 | */ |
259 | static void batadv_bla_send_claim(struct batadv_priv *bat_priv, uint8_t *mac, | 259 | static void batadv_bla_send_claim(struct batadv_priv *bat_priv, uint8_t *mac, |
260 | short vid, int claimtype) | 260 | unsigned short vid, int claimtype) |
261 | { | 261 | { |
262 | struct sk_buff *skb; | 262 | struct sk_buff *skb; |
263 | struct ethhdr *ethhdr; | 263 | struct ethhdr *ethhdr; |
@@ -335,13 +335,14 @@ static void batadv_bla_send_claim(struct batadv_priv *bat_priv, uint8_t *mac, | |||
335 | memcpy(hw_src, mac, ETH_ALEN); | 335 | memcpy(hw_src, mac, ETH_ALEN); |
336 | memcpy(ethhdr->h_dest, mac, ETH_ALEN); | 336 | memcpy(ethhdr->h_dest, mac, ETH_ALEN); |
337 | batadv_dbg(BATADV_DBG_BLA, bat_priv, | 337 | batadv_dbg(BATADV_DBG_BLA, bat_priv, |
338 | "bla_send_claim(): REQUEST of %pM to %pMon vid %d\n", | 338 | "bla_send_claim(): REQUEST of %pM to %pM on vid %d\n", |
339 | ethhdr->h_source, ethhdr->h_dest, vid); | 339 | ethhdr->h_source, ethhdr->h_dest, vid); |
340 | break; | 340 | break; |
341 | } | 341 | } |
342 | 342 | ||
343 | if (vid != -1) | 343 | if (vid & BATADV_VLAN_HAS_TAG) |
344 | skb = vlan_insert_tag(skb, htons(ETH_P_8021Q), vid); | 344 | skb = vlan_insert_tag(skb, htons(ETH_P_8021Q), |
345 | vid & VLAN_VID_MASK); | ||
345 | 346 | ||
346 | skb_reset_mac_header(skb); | 347 | skb_reset_mac_header(skb); |
347 | skb->protocol = eth_type_trans(skb, soft_iface); | 348 | skb->protocol = eth_type_trans(skb, soft_iface); |
@@ -367,7 +368,7 @@ out: | |||
367 | */ | 368 | */ |
368 | static struct batadv_bla_backbone_gw * | 369 | static struct batadv_bla_backbone_gw * |
369 | batadv_bla_get_backbone_gw(struct batadv_priv *bat_priv, uint8_t *orig, | 370 | batadv_bla_get_backbone_gw(struct batadv_priv *bat_priv, uint8_t *orig, |
370 | short vid, bool own_backbone) | 371 | unsigned short vid, bool own_backbone) |
371 | { | 372 | { |
372 | struct batadv_bla_backbone_gw *entry; | 373 | struct batadv_bla_backbone_gw *entry; |
373 | struct batadv_orig_node *orig_node; | 374 | struct batadv_orig_node *orig_node; |
@@ -434,7 +435,7 @@ batadv_bla_get_backbone_gw(struct batadv_priv *bat_priv, uint8_t *orig, | |||
434 | static void | 435 | static void |
435 | batadv_bla_update_own_backbone_gw(struct batadv_priv *bat_priv, | 436 | batadv_bla_update_own_backbone_gw(struct batadv_priv *bat_priv, |
436 | struct batadv_hard_iface *primary_if, | 437 | struct batadv_hard_iface *primary_if, |
437 | short vid) | 438 | unsigned short vid) |
438 | { | 439 | { |
439 | struct batadv_bla_backbone_gw *backbone_gw; | 440 | struct batadv_bla_backbone_gw *backbone_gw; |
440 | 441 | ||
@@ -456,7 +457,7 @@ batadv_bla_update_own_backbone_gw(struct batadv_priv *bat_priv, | |||
456 | */ | 457 | */ |
457 | static void batadv_bla_answer_request(struct batadv_priv *bat_priv, | 458 | static void batadv_bla_answer_request(struct batadv_priv *bat_priv, |
458 | struct batadv_hard_iface *primary_if, | 459 | struct batadv_hard_iface *primary_if, |
459 | short vid) | 460 | unsigned short vid) |
460 | { | 461 | { |
461 | struct hlist_head *head; | 462 | struct hlist_head *head; |
462 | struct batadv_hashtable *hash; | 463 | struct batadv_hashtable *hash; |
@@ -547,7 +548,7 @@ static void batadv_bla_send_announce(struct batadv_priv *bat_priv, | |||
547 | * @backbone_gw: the backbone gateway which claims it | 548 | * @backbone_gw: the backbone gateway which claims it |
548 | */ | 549 | */ |
549 | static void batadv_bla_add_claim(struct batadv_priv *bat_priv, | 550 | static void batadv_bla_add_claim(struct batadv_priv *bat_priv, |
550 | const uint8_t *mac, const short vid, | 551 | const uint8_t *mac, const unsigned short vid, |
551 | struct batadv_bla_backbone_gw *backbone_gw) | 552 | struct batadv_bla_backbone_gw *backbone_gw) |
552 | { | 553 | { |
553 | struct batadv_bla_claim *claim; | 554 | struct batadv_bla_claim *claim; |
@@ -611,7 +612,7 @@ claim_free_ref: | |||
611 | * given mac address and vid. | 612 | * given mac address and vid. |
612 | */ | 613 | */ |
613 | static void batadv_bla_del_claim(struct batadv_priv *bat_priv, | 614 | static void batadv_bla_del_claim(struct batadv_priv *bat_priv, |
614 | const uint8_t *mac, const short vid) | 615 | const uint8_t *mac, const unsigned short vid) |
615 | { | 616 | { |
616 | struct batadv_bla_claim search_claim, *claim; | 617 | struct batadv_bla_claim search_claim, *claim; |
617 | 618 | ||
@@ -637,7 +638,7 @@ static void batadv_bla_del_claim(struct batadv_priv *bat_priv, | |||
637 | /* check for ANNOUNCE frame, return 1 if handled */ | 638 | /* check for ANNOUNCE frame, return 1 if handled */ |
638 | static int batadv_handle_announce(struct batadv_priv *bat_priv, | 639 | static int batadv_handle_announce(struct batadv_priv *bat_priv, |
639 | uint8_t *an_addr, uint8_t *backbone_addr, | 640 | uint8_t *an_addr, uint8_t *backbone_addr, |
640 | short vid) | 641 | unsigned short vid) |
641 | { | 642 | { |
642 | struct batadv_bla_backbone_gw *backbone_gw; | 643 | struct batadv_bla_backbone_gw *backbone_gw; |
643 | uint16_t crc; | 644 | uint16_t crc; |
@@ -685,7 +686,7 @@ static int batadv_handle_announce(struct batadv_priv *bat_priv, | |||
685 | static int batadv_handle_request(struct batadv_priv *bat_priv, | 686 | static int batadv_handle_request(struct batadv_priv *bat_priv, |
686 | struct batadv_hard_iface *primary_if, | 687 | struct batadv_hard_iface *primary_if, |
687 | uint8_t *backbone_addr, | 688 | uint8_t *backbone_addr, |
688 | struct ethhdr *ethhdr, short vid) | 689 | struct ethhdr *ethhdr, unsigned short vid) |
689 | { | 690 | { |
690 | /* check for REQUEST frame */ | 691 | /* check for REQUEST frame */ |
691 | if (!batadv_compare_eth(backbone_addr, ethhdr->h_dest)) | 692 | if (!batadv_compare_eth(backbone_addr, ethhdr->h_dest)) |
@@ -709,7 +710,7 @@ static int batadv_handle_request(struct batadv_priv *bat_priv, | |||
709 | static int batadv_handle_unclaim(struct batadv_priv *bat_priv, | 710 | static int batadv_handle_unclaim(struct batadv_priv *bat_priv, |
710 | struct batadv_hard_iface *primary_if, | 711 | struct batadv_hard_iface *primary_if, |
711 | uint8_t *backbone_addr, | 712 | uint8_t *backbone_addr, |
712 | uint8_t *claim_addr, short vid) | 713 | uint8_t *claim_addr, unsigned short vid) |
713 | { | 714 | { |
714 | struct batadv_bla_backbone_gw *backbone_gw; | 715 | struct batadv_bla_backbone_gw *backbone_gw; |
715 | 716 | ||
@@ -738,7 +739,7 @@ static int batadv_handle_unclaim(struct batadv_priv *bat_priv, | |||
738 | static int batadv_handle_claim(struct batadv_priv *bat_priv, | 739 | static int batadv_handle_claim(struct batadv_priv *bat_priv, |
739 | struct batadv_hard_iface *primary_if, | 740 | struct batadv_hard_iface *primary_if, |
740 | uint8_t *backbone_addr, uint8_t *claim_addr, | 741 | uint8_t *backbone_addr, uint8_t *claim_addr, |
741 | short vid) | 742 | unsigned short vid) |
742 | { | 743 | { |
743 | struct batadv_bla_backbone_gw *backbone_gw; | 744 | struct batadv_bla_backbone_gw *backbone_gw; |
744 | 745 | ||
@@ -861,7 +862,7 @@ static int batadv_bla_process_claim(struct batadv_priv *bat_priv, | |||
861 | struct batadv_bla_claim_dst *bla_dst; | 862 | struct batadv_bla_claim_dst *bla_dst; |
862 | uint16_t proto; | 863 | uint16_t proto; |
863 | int headlen; | 864 | int headlen; |
864 | short vid = -1; | 865 | unsigned short vid = BATADV_NO_FLAGS; |
865 | int ret; | 866 | int ret; |
866 | 867 | ||
867 | ethhdr = eth_hdr(skb); | 868 | ethhdr = eth_hdr(skb); |
@@ -869,6 +870,7 @@ static int batadv_bla_process_claim(struct batadv_priv *bat_priv, | |||
869 | if (ntohs(ethhdr->h_proto) == ETH_P_8021Q) { | 870 | if (ntohs(ethhdr->h_proto) == ETH_P_8021Q) { |
870 | vhdr = (struct vlan_ethhdr *)ethhdr; | 871 | vhdr = (struct vlan_ethhdr *)ethhdr; |
871 | vid = ntohs(vhdr->h_vlan_TCI) & VLAN_VID_MASK; | 872 | vid = ntohs(vhdr->h_vlan_TCI) & VLAN_VID_MASK; |
873 | vid |= BATADV_VLAN_HAS_TAG; | ||
872 | proto = ntohs(vhdr->h_vlan_encapsulated_proto); | 874 | proto = ntohs(vhdr->h_vlan_encapsulated_proto); |
873 | headlen = sizeof(*vhdr); | 875 | headlen = sizeof(*vhdr); |
874 | } else { | 876 | } else { |
@@ -1358,7 +1360,7 @@ int batadv_bla_is_backbone_gw(struct sk_buff *skb, | |||
1358 | struct ethhdr *ethhdr; | 1360 | struct ethhdr *ethhdr; |
1359 | struct vlan_ethhdr *vhdr; | 1361 | struct vlan_ethhdr *vhdr; |
1360 | struct batadv_bla_backbone_gw *backbone_gw; | 1362 | struct batadv_bla_backbone_gw *backbone_gw; |
1361 | short vid = -1; | 1363 | unsigned short vid = BATADV_NO_FLAGS; |
1362 | 1364 | ||
1363 | if (!atomic_read(&orig_node->bat_priv->bridge_loop_avoidance)) | 1365 | if (!atomic_read(&orig_node->bat_priv->bridge_loop_avoidance)) |
1364 | return 0; | 1366 | return 0; |
@@ -1375,6 +1377,7 @@ int batadv_bla_is_backbone_gw(struct sk_buff *skb, | |||
1375 | 1377 | ||
1376 | vhdr = (struct vlan_ethhdr *)(skb->data + hdr_size); | 1378 | vhdr = (struct vlan_ethhdr *)(skb->data + hdr_size); |
1377 | vid = ntohs(vhdr->h_vlan_TCI) & VLAN_VID_MASK; | 1379 | vid = ntohs(vhdr->h_vlan_TCI) & VLAN_VID_MASK; |
1380 | vid |= BATADV_VLAN_HAS_TAG; | ||
1378 | } | 1381 | } |
1379 | 1382 | ||
1380 | /* see if this originator is a backbone gw for this VLAN */ | 1383 | /* see if this originator is a backbone gw for this VLAN */ |
@@ -1424,8 +1427,8 @@ void batadv_bla_free(struct batadv_priv *bat_priv) | |||
1424 | * returns 1, otherwise it returns 0 and the caller shall further | 1427 | * returns 1, otherwise it returns 0 and the caller shall further |
1425 | * process the skb. | 1428 | * process the skb. |
1426 | */ | 1429 | */ |
1427 | int batadv_bla_rx(struct batadv_priv *bat_priv, struct sk_buff *skb, short vid, | 1430 | int batadv_bla_rx(struct batadv_priv *bat_priv, struct sk_buff *skb, |
1428 | bool is_bcast) | 1431 | unsigned short vid, bool is_bcast) |
1429 | { | 1432 | { |
1430 | struct ethhdr *ethhdr; | 1433 | struct ethhdr *ethhdr; |
1431 | struct batadv_bla_claim search_claim, *claim = NULL; | 1434 | struct batadv_bla_claim search_claim, *claim = NULL; |
@@ -1519,7 +1522,8 @@ out: | |||
1519 | * returns 1, otherwise it returns 0 and the caller shall further | 1522 | * returns 1, otherwise it returns 0 and the caller shall further |
1520 | * process the skb. | 1523 | * process the skb. |
1521 | */ | 1524 | */ |
1522 | int batadv_bla_tx(struct batadv_priv *bat_priv, struct sk_buff *skb, short vid) | 1525 | int batadv_bla_tx(struct batadv_priv *bat_priv, struct sk_buff *skb, |
1526 | unsigned short vid) | ||
1523 | { | 1527 | { |
1524 | struct ethhdr *ethhdr; | 1528 | struct ethhdr *ethhdr; |
1525 | struct batadv_bla_claim search_claim, *claim = NULL; | 1529 | struct batadv_bla_claim search_claim, *claim = NULL; |
@@ -1623,7 +1627,7 @@ int batadv_bla_claim_table_seq_print_text(struct seq_file *seq, void *offset) | |||
1623 | hlist_for_each_entry_rcu(claim, head, hash_entry) { | 1627 | hlist_for_each_entry_rcu(claim, head, hash_entry) { |
1624 | is_own = batadv_compare_eth(claim->backbone_gw->orig, | 1628 | is_own = batadv_compare_eth(claim->backbone_gw->orig, |
1625 | primary_addr); | 1629 | primary_addr); |
1626 | seq_printf(seq, " * %pM on % 5d by %pM [%c] (%#.4x)\n", | 1630 | seq_printf(seq, " * %pM on %5d by %pM [%c] (%#.4x)\n", |
1627 | claim->addr, claim->vid, | 1631 | claim->addr, claim->vid, |
1628 | claim->backbone_gw->orig, | 1632 | claim->backbone_gw->orig, |
1629 | (is_own ? 'x' : ' '), | 1633 | (is_own ? 'x' : ' '), |
@@ -1676,10 +1680,9 @@ int batadv_bla_backbone_table_seq_print_text(struct seq_file *seq, void *offset) | |||
1676 | if (is_own) | 1680 | if (is_own) |
1677 | continue; | 1681 | continue; |
1678 | 1682 | ||
1679 | seq_printf(seq, | 1683 | seq_printf(seq, " * %pM on %5d %4i.%03is (%#.4x)\n", |
1680 | " * %pM on % 5d % 4i.%03is (%#.4x)\n", | 1684 | backbone_gw->orig, backbone_gw->vid, secs, |
1681 | backbone_gw->orig, backbone_gw->vid, | 1685 | msecs, backbone_gw->crc); |
1682 | secs, msecs, backbone_gw->crc); | ||
1683 | } | 1686 | } |
1684 | rcu_read_unlock(); | 1687 | rcu_read_unlock(); |
1685 | } | 1688 | } |
diff --git a/net/batman-adv/bridge_loop_avoidance.h b/net/batman-adv/bridge_loop_avoidance.h index dea2fbc5d98d..4b102e71e5bd 100644 --- a/net/batman-adv/bridge_loop_avoidance.h +++ b/net/batman-adv/bridge_loop_avoidance.h | |||
@@ -21,9 +21,10 @@ | |||
21 | #define _NET_BATMAN_ADV_BLA_H_ | 21 | #define _NET_BATMAN_ADV_BLA_H_ |
22 | 22 | ||
23 | #ifdef CONFIG_BATMAN_ADV_BLA | 23 | #ifdef CONFIG_BATMAN_ADV_BLA |
24 | int batadv_bla_rx(struct batadv_priv *bat_priv, struct sk_buff *skb, short vid, | 24 | int batadv_bla_rx(struct batadv_priv *bat_priv, struct sk_buff *skb, |
25 | bool is_bcast); | 25 | unsigned short vid, bool is_bcast); |
26 | int batadv_bla_tx(struct batadv_priv *bat_priv, struct sk_buff *skb, short vid); | 26 | int batadv_bla_tx(struct batadv_priv *bat_priv, struct sk_buff *skb, |
27 | unsigned short vid); | ||
27 | int batadv_bla_is_backbone_gw(struct sk_buff *skb, | 28 | int batadv_bla_is_backbone_gw(struct sk_buff *skb, |
28 | struct batadv_orig_node *orig_node, int hdr_size); | 29 | struct batadv_orig_node *orig_node, int hdr_size); |
29 | int batadv_bla_claim_table_seq_print_text(struct seq_file *seq, void *offset); | 30 | int batadv_bla_claim_table_seq_print_text(struct seq_file *seq, void *offset); |
@@ -42,13 +43,14 @@ void batadv_bla_free(struct batadv_priv *bat_priv); | |||
42 | #else /* ifdef CONFIG_BATMAN_ADV_BLA */ | 43 | #else /* ifdef CONFIG_BATMAN_ADV_BLA */ |
43 | 44 | ||
44 | static inline int batadv_bla_rx(struct batadv_priv *bat_priv, | 45 | static inline int batadv_bla_rx(struct batadv_priv *bat_priv, |
45 | struct sk_buff *skb, short vid, bool is_bcast) | 46 | struct sk_buff *skb, unsigned short vid, |
47 | bool is_bcast) | ||
46 | { | 48 | { |
47 | return 0; | 49 | return 0; |
48 | } | 50 | } |
49 | 51 | ||
50 | static inline int batadv_bla_tx(struct batadv_priv *bat_priv, | 52 | static inline int batadv_bla_tx(struct batadv_priv *bat_priv, |
51 | struct sk_buff *skb, short vid) | 53 | struct sk_buff *skb, unsigned short vid) |
52 | { | 54 | { |
53 | return 0; | 55 | return 0; |
54 | } | 56 | } |
diff --git a/net/batman-adv/main.h b/net/batman-adv/main.h index ea1a3bafe9c3..6f25ef29f305 100644 --- a/net/batman-adv/main.h +++ b/net/batman-adv/main.h | |||
@@ -162,6 +162,17 @@ enum batadv_uev_type { | |||
162 | #include <linux/seq_file.h> | 162 | #include <linux/seq_file.h> |
163 | #include "types.h" | 163 | #include "types.h" |
164 | 164 | ||
165 | /** | ||
166 | * batadv_vlan_flags - flags for the four MSB of any vlan ID field | ||
167 | * @BATADV_VLAN_HAS_TAG: whether the field contains a valid vlan tag or not | ||
168 | */ | ||
169 | enum batadv_vlan_flags { | ||
170 | BATADV_VLAN_HAS_TAG = BIT(15), | ||
171 | }; | ||
172 | |||
173 | #define BATADV_PRINT_VID(vid) (vid & BATADV_VLAN_HAS_TAG ? \ | ||
174 | (int)(vid & VLAN_VID_MASK) : -1) | ||
175 | |||
165 | extern char batadv_routing_algo[]; | 176 | extern char batadv_routing_algo[]; |
166 | extern struct list_head batadv_hardif_list; | 177 | extern struct list_head batadv_hardif_list; |
167 | 178 | ||
diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c index b26a6cdb934c..700d0b49742d 100644 --- a/net/batman-adv/soft-interface.c +++ b/net/batman-adv/soft-interface.c | |||
@@ -154,7 +154,7 @@ static int batadv_interface_tx(struct sk_buff *skb, | |||
154 | 0x00, 0x00}; | 154 | 0x00, 0x00}; |
155 | unsigned int header_len = 0; | 155 | unsigned int header_len = 0; |
156 | int data_len = skb->len, ret; | 156 | int data_len = skb->len, ret; |
157 | short vid __maybe_unused = -1; | 157 | unsigned short vid __maybe_unused = BATADV_NO_FLAGS; |
158 | bool do_bcast = false; | 158 | bool do_bcast = false; |
159 | uint32_t seqno; | 159 | uint32_t seqno; |
160 | unsigned long brd_delay = 1; | 160 | unsigned long brd_delay = 1; |
@@ -303,7 +303,7 @@ void batadv_interface_rx(struct net_device *soft_iface, | |||
303 | struct ethhdr *ethhdr; | 303 | struct ethhdr *ethhdr; |
304 | struct vlan_ethhdr *vhdr; | 304 | struct vlan_ethhdr *vhdr; |
305 | struct batadv_header *batadv_header = (struct batadv_header *)skb->data; | 305 | struct batadv_header *batadv_header = (struct batadv_header *)skb->data; |
306 | short vid __maybe_unused = -1; | 306 | unsigned short vid __maybe_unused = BATADV_NO_FLAGS; |
307 | __be16 ethertype = __constant_htons(ETH_P_BATMAN); | 307 | __be16 ethertype = __constant_htons(ETH_P_BATMAN); |
308 | bool is_bcast; | 308 | bool is_bcast; |
309 | 309 | ||
diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h index 5f542bdd9a4d..b2c94e139319 100644 --- a/net/batman-adv/types.h +++ b/net/batman-adv/types.h | |||
@@ -642,7 +642,7 @@ struct batadv_socket_packet { | |||
642 | #ifdef CONFIG_BATMAN_ADV_BLA | 642 | #ifdef CONFIG_BATMAN_ADV_BLA |
643 | struct batadv_bla_backbone_gw { | 643 | struct batadv_bla_backbone_gw { |
644 | uint8_t orig[ETH_ALEN]; | 644 | uint8_t orig[ETH_ALEN]; |
645 | short vid; | 645 | unsigned short vid; |
646 | struct hlist_node hash_entry; | 646 | struct hlist_node hash_entry; |
647 | struct batadv_priv *bat_priv; | 647 | struct batadv_priv *bat_priv; |
648 | unsigned long lasttime; | 648 | unsigned long lasttime; |
@@ -665,7 +665,7 @@ struct batadv_bla_backbone_gw { | |||
665 | */ | 665 | */ |
666 | struct batadv_bla_claim { | 666 | struct batadv_bla_claim { |
667 | uint8_t addr[ETH_ALEN]; | 667 | uint8_t addr[ETH_ALEN]; |
668 | short vid; | 668 | unsigned short vid; |
669 | struct batadv_bla_backbone_gw *backbone_gw; | 669 | struct batadv_bla_backbone_gw *backbone_gw; |
670 | unsigned long lasttime; | 670 | unsigned long lasttime; |
671 | struct hlist_node hash_entry; | 671 | struct hlist_node hash_entry; |