Message ID | 1662690338-72979-1-git-send-email-lxliu@ikuai8.com |
---|---|
State | New |
Headers | show |
Series | [PATCH-22.03] netifd: bridge: add support option for untagged | expand |
pt., 9 wrz 2022 o 04:32 LiXiong Liu <lxliu@ikuai8.com> napisał(a): > > ### swconfig & DSA VLAN Configuration Comparison > Doesn't just support Tunnk on lan5, > also need access to 192.168.1.1 > so must setting untagged at br-lan > > #switch-vlan > config switch > option name 'switch0' > option reset '1' > option enable_vlan '1' > > config switch_vlan > option device 'switch0' > option vlan '0' > option vid '0' > option ports '2 3 5 6' > > config switch_vlan > option device 'switch0' > option vlan '100' > option vid '100' > option ports '0 1 4t' > > > #bridge-vlan > config interface 'lan' > option device 'br-lan' > option proto 'static' > option ipaddr '192.168.1.1' > option netmask '255.255.255.0' > option ip6assign '60' > config device > option name 'br-lan' > option type 'bridge' > list ports 'lan1' > list ports 'lan2' > list ports 'lan3' > list ports 'lan4' > list ports 'lan5' > > config bridge-vlan > option device 'br-lan' > option untagged '1' > option vlan '1' > list ports 'lan3' > list ports 'lan4' > list ports 'lan5' > > config bridge-vlan > option device 'br-lan' > option vlan '100' > list ports 'lan1:u*' > list ports 'lan1:u*' > list ports 'lan5:t' > > #bridge vlan show > port vlan-id > lan1 100 PVID Egress Untagged > lan2 100 PVID Egress Untagged > lan3 1 PVID Egress Untagged > lan4 1 PVID Egress Untagged > lan5 1 PVID Egress Untagged > 10 > br-lan 1 PVID Egress Untagged > 10 > We are using smth like this: config bridge-vlan 'vlan1' option name 'vlan1' option device 'br-lan' option vlan '1' option flags 'untagged pvid' option local '1' list ports 'eth2:*' list ports 'eth3:*' And attached patch - not sure what is best. For sure any option to set self br config looks good. BR Janusz
Janusz Dziedzic <janusz.dziedzic@gmail.com> wrote: > [-- text/plain, encoding quoted-printable, charset: UTF-8, 86 lines --] > pt., 9 wrz 2022 o 04:32 LiXiong Liu <lxliu@ikuai8.com> napisał(a): > > > > ### swconfig & DSA VLAN Configuration Comparison [....] > > #bridge vlan show > > port vlan-id > > lan1 100 PVID Egress Untagged > > lan2 100 PVID Egress Untagged > > lan3 1 PVID Egress Untagged > > lan4 1 PVID Egress Untagged > > lan5 1 PVID Egress Untagged > > 10 > > br-lan 1 PVID Egress Untagged > > 10 > > > We are using smth like this: > config bridge-vlan 'vlan1' > option name 'vlan1' > option device 'br-lan' > option vlan '1' > option flags 'untagged pvid' "untagged pvid" is tautology. PVID stands for "Port VLAN ID" - is a default VLAN ID that is assigned to an access port. Access ports only for untagged (stripped tag) frames. So, drop 'untagged' from options or 'pvid'. > option local '1' > list ports 'eth2:*' > list ports 'eth3:*' [...]
pt., 9 wrz 2022 o 12:30 Andrey Jr. Melnikov <temnota.am@gmail.com> napisał(a): > > Janusz Dziedzic <janusz.dziedzic@gmail.com> wrote: > > [-- text/plain, encoding quoted-printable, charset: UTF-8, 86 lines --] > > > pt., 9 wrz 2022 o 04:32 LiXiong Liu <lxliu@ikuai8.com> napisał(a): > > > > > > ### swconfig & DSA VLAN Configuration Comparison > > [....] > > > > #bridge vlan show > > > port vlan-id > > > lan1 100 PVID Egress Untagged > > > lan2 100 PVID Egress Untagged > > > lan3 1 PVID Egress Untagged > > > lan4 1 PVID Egress Untagged > > > lan5 1 PVID Egress Untagged > > > 10 > > > br-lan 1 PVID Egress Untagged > > > 10 > > > > > > We are using smth like this: > > > config bridge-vlan 'vlan1' > > option name 'vlan1' > > option device 'br-lan' > > option vlan '1' > > option flags 'untagged pvid' > "untagged pvid" is tautology. PVID stands for "Port VLAN ID" - is a default VLAN ID that is assigned to an access > port. Access ports only for untagged (stripped tag) frames. So, drop 'untagged' > from options or 'pvid'. > What in case I would like to have smth like: br-lan 1 PVID Egress Untagged 10 Egress Untagged bridge vlan <> - tool allow this configuration. Why we should add any limitation in UCI? BR Janusz > > option local '1' > > list ports 'eth2:*' > > list ports 'eth3:*' > > [...] > > > _______________________________________________ > openwrt-devel mailing list > openwrt-devel@lists.openwrt.org > https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Janusz Dziedzic <janusz.dziedzic@gmail.com> wrote: > pt., 9 wrz 2022 o 12:30 Andrey Jr. Melnikov <temnota.am@gmail.com> napisał(a): > > > > Janusz Dziedzic <janusz.dziedzic@gmail.com> wrote: > > > [-- text/plain, encoding quoted-printable, charset: UTF-8, 86 lines --] > > > > > pt., 9 wrz 2022 o 04:32 LiXiong Liu <lxliu@ikuai8.com> napisał(a): > > > > > > > > ### swconfig & DSA VLAN Configuration Comparison > > > > [....] > > > > > > #bridge vlan show > > > > port vlan-id > > > > lan1 100 PVID Egress Untagged > > > > lan2 100 PVID Egress Untagged > > > > lan3 1 PVID Egress Untagged > > > > lan4 1 PVID Egress Untagged > > > > lan5 1 PVID Egress Untagged > > > > 10 > > > > br-lan 1 PVID Egress Untagged > > > > 10 > > > > > > > > > We are using smth like this: > > > > > config bridge-vlan 'vlan1' > > > option name 'vlan1' > > > option device 'br-lan' > > > option vlan '1' > > > option flags 'untagged pvid' > > "untagged pvid" is tautology. PVID stands for "Port VLAN ID" - is a default VLAN ID that is assigned to an access > > port. Access ports only for untagged (stripped tag) frames. So, drop 'untagged' > > from options or 'pvid'. > > > What in case I would like to have smth like: > br-lan 1 PVID Egress Untagged > 10 Egress Untagged > bridge vlan <> - tool allow this configuration. Why we should add any > limitation in UCI? Problem not in configuration, problem in misleading UCI/tools output - PVID *always* untagged.
diff --git a/package/network/config/netifd/patches/100-bridge-vlan-support-untagged.patch b/package/network/config/netifd/patches/100-bridge-vlan-support-untagged.patch new file mode 100644 index 0000000..02485c0 --- /dev/null +++ b/package/network/config/netifd/patches/100-bridge-vlan-support-untagged.patch @@ -0,0 +1,58 @@ +Support setting untagged at br-lan + +--- a/bridge.c 2022-09-08 21:03:06.401331415 +0800 ++++ b/bridge.c 2022-09-08 21:13:19.261304451 +0800 +@@ -230,10 +230,15 @@ bridge_set_member_vlan(struct bridge_mem + static void + bridge_set_local_vlan(struct bridge_state *bst, struct bridge_vlan *vlan, bool add) + { ++ unsigned int vflags = BRVLAN_F_SELF; ++ + if (!vlan->local && add) + return; + +- system_bridge_vlan(bst->dev.ifname, vlan->vid, add, BRVLAN_F_SELF); ++ if (vlan->untagged) ++ vflags |= (BRVLAN_F_PVID|BRVLAN_F_UNTAGGED); ++ ++ system_bridge_vlan(bst->dev.ifname, vlan->vid, add, vflags); + } + + static void +--- a/config.c 2022-09-08 21:03:06.541331409 +0800 ++++ b/config.c 2022-09-08 21:05:26.007372217 +0800 +@@ -311,6 +311,7 @@ config_parse_vlan(struct device *dev, st + BRVLAN_ATTR_LOCAL, + BRVLAN_ATTR_PORTS, + BRVLAN_ATTR_ALIAS, ++ BRVLAN_ATTR_UNTAG, + __BRVLAN_ATTR_MAX, + }; + static const struct blobmsg_policy vlan_attrs[__BRVLAN_ATTR_MAX] = { +@@ -318,6 +319,7 @@ config_parse_vlan(struct device *dev, st + [BRVLAN_ATTR_LOCAL] = { "local", BLOBMSG_TYPE_BOOL }, + [BRVLAN_ATTR_PORTS] = { "ports", BLOBMSG_TYPE_ARRAY }, + [BRVLAN_ATTR_ALIAS] = { "alias", BLOBMSG_TYPE_ARRAY }, ++ [BRVLAN_ATTR_UNTAG] = { "untagged", BLOBMSG_TYPE_BOOL }, + }; + static const struct uci_blob_param_info vlan_attr_info[__BRVLAN_ATTR_MAX] = { + [BRVLAN_ATTR_PORTS] = { .type = BLOBMSG_TYPE_STRING }, +@@ -367,6 +369,8 @@ config_parse_vlan(struct device *dev, st + vlan->local = true; + if (tb[BRVLAN_ATTR_LOCAL]) + vlan->local = blobmsg_get_bool(tb[BRVLAN_ATTR_LOCAL]); ++ if (tb[BRVLAN_ATTR_UNTAG]) ++ vlan->untagged = blobmsg_get_bool(tb[BRVLAN_ATTR_UNTAG]); + + vlan->n_ports = n_ports; + vlan->ports = port = (struct bridge_vlan_port *)&vlan[1]; +--- a/device.h 2022-09-08 21:03:06.401331415 +0800 ++++ b/device.h 2022-09-08 21:03:14.833887415 +0800 +@@ -294,6 +294,7 @@ struct bridge_vlan { + uint16_t vid; + bool local; + bool pending; ++ bool untagged; + }; + + extern const struct uci_blob_param_list device_attr_list;
### swconfig & DSA VLAN Configuration Comparison Doesn't just support Tunnk on lan5, also need access to 192.168.1.1 so must setting untagged at br-lan #switch-vlan config switch option name 'switch0' option reset '1' option enable_vlan '1' config switch_vlan option device 'switch0' option vlan '0' option vid '0' option ports '2 3 5 6' config switch_vlan option device 'switch0' option vlan '100' option vid '100' option ports '0 1 4t' #bridge-vlan config interface 'lan' option device 'br-lan' option proto 'static' option ipaddr '192.168.1.1' option netmask '255.255.255.0' option ip6assign '60' config device option name 'br-lan' option type 'bridge' list ports 'lan1' list ports 'lan2' list ports 'lan3' list ports 'lan4' list ports 'lan5' config bridge-vlan option device 'br-lan' option untagged '1' option vlan '1' list ports 'lan3' list ports 'lan4' list ports 'lan5' config bridge-vlan option device 'br-lan' option vlan '100' list ports 'lan1:u*' list ports 'lan1:u*' list ports 'lan5:t' #bridge vlan show port vlan-id lan1 100 PVID Egress Untagged lan2 100 PVID Egress Untagged lan3 1 PVID Egress Untagged lan4 1 PVID Egress Untagged lan5 1 PVID Egress Untagged 10 br-lan 1 PVID Egress Untagged 10 Signed-off-by: LiXiong Liu <lxliu@ikuai8.com> --- .../patches/100-bridge-vlan-support-untagged.patch | 58 ++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 package/network/config/netifd/patches/100-bridge-vlan-support-untagged.patch