vlan/vlandev: pass through extra vlan information passed via hotplug
authorFelix Fietkau <nbd@nbd.name>
Wed, 21 Jun 2023 18:46:24 +0000 (20:46 +0200)
committerFelix Fietkau <nbd@nbd.name>
Wed, 21 Jun 2023 18:46:25 +0000 (20:46 +0200)
This adds support for adding extra tagged VLANs in addition to the primary one

Signed-off-by: Felix Fietkau <nbd@nbd.name>
vlan.c
vlandev.c

diff --git a/vlan.c b/vlan.c
index 4d32b60b2eedf72b193dd47c6842bd6dc542ce53..0d53c312e55946c79fea48c0e8814c2fa8fbd6a0 100644 (file)
--- a/vlan.c
+++ b/vlan.c
@@ -52,6 +52,8 @@ __vlan_hotplug_op(struct device *dev, struct device *member, struct blob_attr *v
        blob_buf_init(&b, 0);
        a = blobmsg_open_array(&b, "vlans");
        blobmsg_printf(&b, NULL, "%d", vldev->id);
+       if (vlan && blobmsg_len(vlan))
+               blob_put_raw(&b, blobmsg_data(vlan), blobmsg_len(vlan));
        blobmsg_close_array(&b, a);
 
        if (add)
index ad4c526f40ae99cdfedb66c9d81726e24a9f4180..bf527bb4ff3bf0bd955e9b935058ba88a4673314 100644 (file)
--- a/vlandev.c
+++ b/vlandev.c
@@ -73,6 +73,8 @@ __vlandev_hotplug_op(struct device *dev, struct device *member, struct blob_attr
        blob_buf_init(&b, 0);
        a = blobmsg_open_array(&b, "vlans");
        blobmsg_printf(&b, NULL, "%d", mvdev->config.vid);
+       if (vlan && blobmsg_len(vlan))
+               blob_put_raw(&b, blobmsg_data(vlan), blobmsg_len(vlan));
        blobmsg_close_array(&b, a);
 
        if (add)