tap: Fill the IPv6 flow label field to represent flow association
This isn't optional: TCP streams must carry a unique, hard-to-guess, non-zero label for each direction. Linux, probably among others, will otherwise refuse to associate packets in a given stream to the same connection. Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
4
icmp.c
4
icmp.c
@@ -98,7 +98,7 @@ void icmp_sock_handler(struct ctx *c, union epoll_ref ref, uint32_t events,
|
||||
icmp_id_map[V6][id].seq = seq;
|
||||
}
|
||||
|
||||
tap_ip_send(c, &sr6->sin6_addr, IPPROTO_ICMPV6, buf, n);
|
||||
tap_ip_send(c, &sr6->sin6_addr, IPPROTO_ICMPV6, buf, n, 0);
|
||||
} else {
|
||||
struct sockaddr_in *sr4 = (struct sockaddr_in *)&sr;
|
||||
struct icmphdr *ih = (struct icmphdr *)buf;
|
||||
@@ -115,7 +115,7 @@ void icmp_sock_handler(struct ctx *c, union epoll_ref ref, uint32_t events,
|
||||
|
||||
memcpy(&a6.s6_addr[12], &sr4->sin_addr, sizeof(sr4->sin_addr));
|
||||
|
||||
tap_ip_send(c, &a6, IPPROTO_ICMP, buf, n);
|
||||
tap_ip_send(c, &a6, IPPROTO_ICMP, buf, n, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user