network: add Protocol= to vlan netdev (#17794)

This commit is contained in:
walbit-de 2020-12-02 14:58:02 +01:00 committed by GitHub
parent 0f82a2ab5c
commit 2d453f3597
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 17 additions and 0 deletions

View File

@ -450,6 +450,13 @@
This setting is compulsory.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>Protocol=</varname></term>
<listitem>
<para>Allows setting the protocol used for the VLAN interface. Takes <literal>802.1q</literal> or,
<literal>802.1ad</literal>, and defaults to unset and kernel's default is used.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>GVRP=</varname></term>
<listitem>

View File

@ -48,6 +48,7 @@ NetDev.Kind, config_parse_netdev_kind,
NetDev.MTUBytes, config_parse_mtu, AF_UNSPEC, offsetof(NetDev, mtu)
NetDev.MACAddress, config_parse_hwaddr, 0, offsetof(NetDev, mac)
VLAN.Id, config_parse_vlanid, 0, offsetof(VLan, id)
VLAN.Protocol, config_parse_vlanprotocol, 0, offsetof(VLan, protocol)
VLAN.GVRP, config_parse_tristate, 0, offsetof(VLan, gvrp)
VLAN.MVRP, config_parse_tristate, 0, offsetof(VLan, mvrp)
VLAN.LooseBinding, config_parse_tristate, 0, offsetof(VLan, loose_binding)

View File

@ -24,6 +24,12 @@ static int netdev_vlan_fill_message_create(NetDev *netdev, Link *link, sd_netlin
if (r < 0)
return log_netdev_error_errno(netdev, r, "Could not append IFLA_VLAN_ID attribute: %m");
if (v->protocol >= 0) {
r = sd_netlink_message_append_u16(req, IFLA_VLAN_PROTOCOL, htobe16(v->protocol));
if (r < 0)
return log_netdev_error_errno(netdev, r, "Could not append IFLA_VLAN_PROTOCOL attribute: %m");
}
if (v->gvrp != -1) {
flags.mask |= VLAN_FLAG_GVRP;
SET_FLAG(flags.flags, VLAN_FLAG_GVRP, v->gvrp);
@ -76,6 +82,7 @@ static void vlan_init(NetDev *netdev) {
assert(v);
v->id = VLANID_INVALID;
v->protocol = -1;
v->gvrp = -1;
v->mvrp = -1;
v->loose_binding = -1;

View File

@ -9,6 +9,7 @@ struct VLan {
NetDev meta;
uint16_t id;
int protocol;
int gvrp;
int mvrp;

View File

@ -4,6 +4,7 @@ LooseBinding=
ReorderHeader=
Id=
GVRP=
Protocol=
[MACVLAN]
Mode=
SourceMACAddress=