net: exthdrs: ioam6: send trace event
authorJustin Iurman <justin.iurman@uliege.be>
Mon, 26 Feb 2024 13:14:12 +0000 (14:14 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 28 Feb 2024 11:19:41 +0000 (11:19 +0000)
If we're processing an IOAM Pre-allocated Trace Option-Type (the only
one supported currently), then send the trace as an ioam6 event to the
netlink multicast group. This way, user space apps will be able to
collect IOAM data.

Reviewed-by: David Ahern <dsahern@kernel.org>
Signed-off-by: Justin Iurman <justin.iurman@uliege.be>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/exthdrs.c

index 02e9ffb..7277929 100644 (file)
@@ -50,6 +50,7 @@
 #endif
 #include <net/rpl.h>
 #include <linux/ioam6.h>
+#include <linux/ioam6_genl.h>
 #include <net/ioam6.h>
 #include <net/dst_metadata.h>
 
@@ -954,6 +955,9 @@ static bool ipv6_hop_ioam(struct sk_buff *skb, int optoff)
                                                   + optoff + sizeof(*hdr));
 
                ioam6_fill_trace_data(skb, ns, trace, true);
+
+               ioam6_event(IOAM6_EVENT_TRACE, dev_net(skb->dev),
+                           GFP_ATOMIC, (void *)trace, hdr->opt_len - 2);
                break;
        default:
                break;