l3mdev_ops
dev->l3mdev_ops = &ipvl_l3mdev_ops;
static const struct l3mdev_ops ipvl_l3mdev_ops = {
static const struct l3mdev_ops vrf_l3mdev_ops = {
dev->l3mdev_ops = &vrf_l3mdev_ops;
const struct l3mdev_ops *l3mdev_ops;
if (master && master->l3mdev_ops->l3mdev_l3_rcv)
skb = master->l3mdev_ops->l3mdev_l3_rcv(master, skb, proto);
if (master && master->l3mdev_ops->l3mdev_l3_out)
skb = master->l3mdev_ops->l3mdev_l3_out(master, sk,
if (unlikely(!dev->l3mdev_ops->l3mdev_l3_rcv))
skb = dev->l3mdev_ops->l3mdev_l3_rcv(dev, skb, family);
if (dev->l3mdev_ops->l3mdev_fib_table)
tb_id = dev->l3mdev_ops->l3mdev_fib_table(dev);
master->l3mdev_ops->l3mdev_fib_table)
tb_id = master->l3mdev_ops->l3mdev_fib_table(master);
dev->l3mdev_ops->l3mdev_link_scope_lookup)
dst = dev->l3mdev_ops->l3mdev_link_scope_lookup(dev, fl6);
dev->l3mdev_ops->l3mdev_fib_table) {
arg->table = dev->l3mdev_ops->l3mdev_fib_table(dev);