aboutsummaryrefslogtreecommitdiffstats
path: root/net/batman-adv/unicast.c
diff options
context:
space:
mode:
authorSven Eckelmann <sven@narfation.org>2011-11-20 09:47:38 -0500
committerMarek Lindner <lindner_marek@yahoo.de>2012-02-16 13:50:19 -0500
commit76543d14aec6ce5cb3fc7be9b39c50fcebd2043b (patch)
tree4f739cfadaee8ec9a06d7855956f3accc1dcc2be /net/batman-adv/unicast.c
parent17071578888c7c18709e48e74fae228c04581b9a (diff)
batman-adv: Explicitly mark the common header structure
All batman-adv packets have a common 3 byte header. It can be used to share some code between different code paths, but it was never explicit stated that this header has to be always the same for all packets. Therefore, new code changes always have the problem that they may accidently introduce regressions by moving some elements around. A new structure is introduced that contains the common header and makes it easier visible that these 3 bytes have to be the same for all on-wire packets. Signed-off-by: Sven Eckelmann <sven@narfation.org> Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
Diffstat (limited to 'net/batman-adv/unicast.c')
-rw-r--r--net/batman-adv/unicast.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/net/batman-adv/unicast.c b/net/batman-adv/unicast.c
index 07d1c1da89dd..6f3c65952f53 100644
--- a/net/batman-adv/unicast.c
+++ b/net/batman-adv/unicast.c
@@ -67,7 +67,7 @@ static struct sk_buff *frag_merge_packet(struct list_head *head,
67 67
68 memmove(skb->data + uni_diff, skb->data, hdr_len); 68 memmove(skb->data + uni_diff, skb->data, hdr_len);
69 unicast_packet = (struct unicast_packet *) skb_pull(skb, uni_diff); 69 unicast_packet = (struct unicast_packet *) skb_pull(skb, uni_diff);
70 unicast_packet->packet_type = BAT_UNICAST; 70 unicast_packet->header.packet_type = BAT_UNICAST;
71 71
72 return skb; 72 return skb;
73 73
@@ -251,9 +251,9 @@ int frag_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv,
251 251
252 memcpy(frag1, &tmp_uc, sizeof(tmp_uc)); 252 memcpy(frag1, &tmp_uc, sizeof(tmp_uc));
253 253
254 frag1->ttl--; 254 frag1->header.ttl--;
255 frag1->version = COMPAT_VERSION; 255 frag1->header.version = COMPAT_VERSION;
256 frag1->packet_type = BAT_UNICAST_FRAG; 256 frag1->header.packet_type = BAT_UNICAST_FRAG;
257 257
258 memcpy(frag1->orig, primary_if->net_dev->dev_addr, ETH_ALEN); 258 memcpy(frag1->orig, primary_if->net_dev->dev_addr, ETH_ALEN);
259 memcpy(frag2, frag1, sizeof(*frag2)); 259 memcpy(frag2, frag1, sizeof(*frag2));
@@ -320,11 +320,11 @@ find_router:
320 320
321 unicast_packet = (struct unicast_packet *)skb->data; 321 unicast_packet = (struct unicast_packet *)skb->data;
322 322
323 unicast_packet->version = COMPAT_VERSION; 323 unicast_packet->header.version = COMPAT_VERSION;
324 /* batman packet type: unicast */ 324 /* batman packet type: unicast */
325 unicast_packet->packet_type = BAT_UNICAST; 325 unicast_packet->header.packet_type = BAT_UNICAST;
326 /* set unicast ttl */ 326 /* set unicast ttl */
327 unicast_packet->ttl = TTL; 327 unicast_packet->header.ttl = TTL;
328 /* copy the destination for faster routing */ 328 /* copy the destination for faster routing */
329 memcpy(unicast_packet->dest, orig_node->orig, ETH_ALEN); 329 memcpy(unicast_packet->dest, orig_node->orig, ETH_ALEN);
330 /* set the destination tt version number */ 330 /* set the destination tt version number */
@@ -335,7 +335,7 @@ find_router:
335 data_len + sizeof(*unicast_packet) > 335 data_len + sizeof(*unicast_packet) >
336 neigh_node->if_incoming->net_dev->mtu) { 336 neigh_node->if_incoming->net_dev->mtu) {
337 /* send frag skb decreases ttl */ 337 /* send frag skb decreases ttl */
338 unicast_packet->ttl++; 338 unicast_packet->header.ttl++;
339 ret = frag_send_skb(skb, bat_priv, 339 ret = frag_send_skb(skb, bat_priv,
340 neigh_node->if_incoming, neigh_node->addr); 340 neigh_node->if_incoming, neigh_node->addr);
341 goto out; 341 goto out;