git://git.onelab.eu
/
sliver-openvswitch.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
xenserver/README: Remove bad instructions.
[sliver-openvswitch.git]
/
datapath
/
tunnel.c
diff --git
a/datapath/tunnel.c
b/datapath/tunnel.c
index
41907b9
..
33d2fe9
100644
(file)
--- a/
datapath/tunnel.c
+++ b/
datapath/tunnel.c
@@
-538,6
+538,7
@@
static bool ipv6_should_icmp(struct sk_buff *skb)
int addr_type;
int payload_off = (u8 *)(old_ipv6h + 1) - skb->data;
u8 nexthdr = ipv6_hdr(skb)->nexthdr;
int addr_type;
int payload_off = (u8 *)(old_ipv6h + 1) - skb->data;
u8 nexthdr = ipv6_hdr(skb)->nexthdr;
+ __be16 frag_off;
/* Check source address is valid. */
addr_type = ipv6_addr_type(&old_ipv6h->saddr);
/* Check source address is valid. */
addr_type = ipv6_addr_type(&old_ipv6h->saddr);
@@
-549,7
+550,7
@@
static bool ipv6_should_icmp(struct sk_buff *skb)
return false;
/* Don't respond to ICMP error messages. */
return false;
/* Don't respond to ICMP error messages. */
- payload_off = ipv6_skip_exthdr(skb, payload_off, &nexthdr);
+ payload_off = ipv6_skip_exthdr(skb, payload_off, &nexthdr
, &frag_off
);
if (payload_off < 0)
return false;
if (payload_off < 0)
return false;
@@
-587,8
+588,8
@@
static void ipv6_build_icmp(struct sk_buff *skb, struct sk_buff *nskb,
+ payload_length);
ipv6h->nexthdr = NEXTHDR_ICMP;
ipv6h->hop_limit = IPV6_DEFAULT_HOPLIMIT;
+ payload_length);
ipv6h->nexthdr = NEXTHDR_ICMP;
ipv6h->hop_limit = IPV6_DEFAULT_HOPLIMIT;
- ipv6
_addr_copy(&ipv6h->daddr, &old_ipv6h->saddr)
;
- ipv6
_addr_copy(&ipv6h->saddr, &old_ipv6h->daddr)
;
+ ipv6
h->daddr = old_ipv6h->saddr
;
+ ipv6
h->saddr = old_ipv6h->daddr
;
/* ICMPv6 */
icmp6h->icmp6_type = ICMPV6_PKT_TOOBIG;
/* ICMPv6 */
icmp6h->icmp6_type = ICMPV6_PKT_TOOBIG;