From: Felix Fietkau Date: Mon, 4 Dec 2023 19:31:03 +0000 (+0100) Subject: lib: add netlink handler function X-Git-Url: http://git.openwrt.org/project/luci.git;master?a=commitdiff_plain;h=a296f1bac4302c2102a0d2fd1e825c4dadddf0f4;p=project%2Fudebug.git lib: add netlink handler function Signed-off-by: Felix Fietkau --- diff --git a/lib.c b/lib.c index 0bb287e..55a272a 100644 --- a/lib.c +++ b/lib.c @@ -150,6 +150,27 @@ void udebug_ubus_apply_config(struct udebug *ud, struct udebug_ubus_ring *rings, } } +void udebug_netlink_msg(struct udebug_buf *buf, uint16_t proto, const void *data, size_t len) +{ + struct { + uint16_t pkttype; + uint16_t arphdr; + uint16_t _pad[5]; + uint16_t proto; + } hdr = { + .arphdr = cpu_to_be16(824), + .proto = cpu_to_be16(proto), + }; + + if (!udebug_buf_valid(buf)) + return; + + udebug_entry_init(buf); + udebug_entry_append(buf, &hdr, sizeof(hdr)); + udebug_entry_append(buf, data, len); + udebug_entry_add(buf); +} + void udebug_ubus_init(struct udebug_ubus *ctx, struct ubus_context *ubus, const char *service, udebug_config_cb cb) { diff --git a/udebug.h b/udebug.h index ae48837..88f663b 100644 --- a/udebug.h +++ b/udebug.h @@ -19,6 +19,8 @@ struct udebug_ubus { udebug_config_cb cb; }; +void udebug_netlink_msg(struct udebug_buf *buf, uint16_t proto, const void *data, size_t len); + void udebug_ubus_init(struct udebug_ubus *ctx, struct ubus_context *ubus, const char *service, udebug_config_cb cb); void udebug_ubus_ring_init(struct udebug *ud, struct udebug_ubus_ring *ring);