On 13/12/2024 13:32, Donald Hunter wrote:
On Wed, 11 Dec 2024 at 21:32, Antonio Quartulli antonio@openvpn.net wrote:
static int ovpn_newlink(struct net *src_net, struct net_device *dev, struct nlattr *tb[], struct nlattr *data[], struct netlink_ext_ack *extack) {
return -EOPNOTSUPP;
struct ovpn_priv *ovpn = netdev_priv(dev);enum ovpn_mode mode = OVPN_MODE_P2P;if (data && data[IFLA_OVPN_MODE]) {mode = nla_get_u8(data[IFLA_OVPN_MODE]);netdev_dbg(dev, "setting device mode: %u\n", mode);}ovpn->dev = dev;ovpn->mode = mode;/* turn carrier explicitly off after registration, this way state is* clearly defined*/netif_carrier_off(dev);return register_netdevice(dev);}
static struct rtnl_link_ops ovpn_link_ops = { .kind = "ovpn", .netns_refund = false,
.priv_size = sizeof(struct ovpn_priv),.setup = ovpn_setup,.policy = ovpn_policy,.maxtype = IFLA_OVPN_MAX, .newlink = ovpn_newlink, .dellink = unregister_netdevice_queue,};
You need to implement .fill_info to add IFLA_OVPN_MODE into get / dump ops.
Ok, I'll add it in v16.
Thanks a lot. Regards,