diff options
author | Sven Eckelmann <sven@narfation.org> | 2011-11-20 09:47:38 -0500 |
---|---|---|
committer | Marek Lindner <lindner_marek@yahoo.de> | 2012-02-16 13:50:19 -0500 |
commit | 76543d14aec6ce5cb3fc7be9b39c50fcebd2043b (patch) | |
tree | 4f739cfadaee8ec9a06d7855956f3accc1dcc2be /net/batman-adv/unicast.c | |
parent | 17071578888c7c18709e48e74fae228c04581b9a (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.c | 16 |
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; |