The ip6_hdr is aligned to 4 bytes, but the pointer from dp_packet_l3 is aligned to 2 bytes. Use ovs_16aligned_ip6_hdr instead to get 2 bytes alignment.
Signed-off-by: Ales Musil <amu...@redhat.com> --- lib/packets.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/packets.c b/lib/packets.c index 874066e3c..5221af8f2 100644 --- a/lib/packets.c +++ b/lib/packets.c @@ -1705,7 +1705,7 @@ compose_ipv6(struct dp_packet *packet, uint8_t proto, const struct in6_addr *src, const struct in6_addr *dst, uint8_t key_tc, ovs_be32 key_fl, uint8_t key_hl, int size) { - struct ip6_hdr *nh; + struct ovs_16aligned_ip6_hdr *nh; void *data; nh = dp_packet_l3(packet); @@ -1843,7 +1843,7 @@ packet_put_ra_prefix_opt(struct dp_packet *b, const ovs_be128 prefix) { size_t prev_l4_size = dp_packet_l4_size(b); - struct ip6_hdr *nh = dp_packet_l3(b); + struct ovs_16aligned_ip6_hdr *nh = dp_packet_l3(b); nh->ip6_plen = htons(prev_l4_size + ND_PREFIX_OPT_LEN); struct ovs_nd_prefix_opt *prefix_opt = -- 2.35.3 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev