Skip to content

Commit

Permalink
Merge pull request #3365 from albatross0/ipvlan_l2
Browse files Browse the repository at this point in the history
network: Make it possible to set the mode of IPVLAN to L2
  • Loading branch information
Christian Brauner committed Apr 9, 2020
2 parents 8b5f911 + 5755765 commit 43e3548
Showing 1 changed file with 12 additions and 15 deletions.
27 changes: 12 additions & 15 deletions src/lxc/network.c
Expand Up @@ -582,24 +582,21 @@ static int lxc_ipvlan_create(const char *master, const char *name, int mode, int
if (nla_put_string(nlmsg, IFLA_INFO_KIND, "ipvlan"))
return ret_errno(EPROTO);

if (mode) {
nest2 = nla_begin_nested(nlmsg, IFLA_INFO_DATA);
if (!nest2)
return ret_errno(EPROTO);

if (nla_put_u32(nlmsg, IFLA_IPVLAN_MODE, mode))
return ret_errno(EPROTO);
nest2 = nla_begin_nested(nlmsg, IFLA_INFO_DATA);
if (!nest2)
return ret_errno(EPROTO);

/* if_link.h does not define the isolation flag value for bridge mode so we define it as 0
* and only send mode if mode >0 as default mode is bridge anyway according to ipvlan docs.
*/
if (isolation > 0 &&
nla_put_u16(nlmsg, IFLA_IPVLAN_ISOLATION, isolation))
return ret_errno(EPROTO);
if (nla_put_u32(nlmsg, IFLA_IPVLAN_MODE, mode))
return ret_errno(EPROTO);

nla_end_nested(nlmsg, nest2);
}
/* if_link.h does not define the isolation flag value for bridge mode so we define it as 0
* and only send mode if mode >0 as default mode is bridge anyway according to ipvlan docs.
*/
if (isolation > 0 &&
nla_put_u16(nlmsg, IFLA_IPVLAN_ISOLATION, isolation))
return ret_errno(EPROTO);

nla_end_nested(nlmsg, nest2);
nla_end_nested(nlmsg, nest);

if (nla_put_u32(nlmsg, IFLA_LINK, index))
Expand Down

0 comments on commit 43e3548

Please sign in to comment.