static int vrf_add_slave(struct net_device *dev, struct net_device *port_dev)
 {
-       if (netif_is_vrf(port_dev) || vrf_is_slave(port_dev))
+       if (netif_is_l3_master(port_dev) || vrf_is_slave(port_dev))
                return -EINVAL;
 
        return do_vrf_add_slave(dev, port_dev);
 
        vrf->tb_id = nla_get_u32(data[IFLA_VRF_TABLE]);
 
-       dev->priv_flags |= IFF_VRF_MASTER;
+       dev->priv_flags |= IFF_L3MDEV_MASTER;
 
        err = -ENOMEM;
        vrf_ptr = kmalloc(sizeof(*dev->vrf_ptr), GFP_KERNEL);
                struct net_vrf_dev *vrf_ptr = rtnl_dereference(dev->vrf_ptr);
                struct net_device *vrf_dev;
 
-               if (!vrf_ptr || netif_is_vrf(dev))
+               if (!vrf_ptr || netif_is_l3_master(dev))
                        goto out;
 
                vrf_dev = netdev_master_upper_dev_get(dev);
 
  * @IFF_LIVE_ADDR_CHANGE: device supports hardware address
  *     change when it's running
  * @IFF_MACVLAN: Macvlan device
- * @IFF_VRF_MASTER: device is a VRF master
+ * @IFF_L3MDEV_MASTER: device is an L3 master device
  * @IFF_NO_QUEUE: device can run without qdisc attached
  * @IFF_OPENVSWITCH: device is a Open vSwitch master
  */
        IFF_XMIT_DST_RELEASE_PERM       = 1<<17,
        IFF_IPVLAN_MASTER               = 1<<18,
        IFF_IPVLAN_SLAVE                = 1<<19,
-       IFF_VRF_MASTER                  = 1<<20,
+       IFF_L3MDEV_MASTER               = 1<<20,
        IFF_NO_QUEUE                    = 1<<21,
        IFF_OPENVSWITCH                 = 1<<22,
 };
 #define IFF_XMIT_DST_RELEASE_PERM      IFF_XMIT_DST_RELEASE_PERM
 #define IFF_IPVLAN_MASTER              IFF_IPVLAN_MASTER
 #define IFF_IPVLAN_SLAVE               IFF_IPVLAN_SLAVE
-#define IFF_VRF_MASTER                 IFF_VRF_MASTER
+#define IFF_L3MDEV_MASTER              IFF_L3MDEV_MASTER
 #define IFF_NO_QUEUE                   IFF_NO_QUEUE
 #define IFF_OPENVSWITCH                        IFF_OPENVSWITCH
 
        return dev->priv_flags & IFF_SUPP_NOFCS;
 }
 
-static inline bool netif_is_vrf(const struct net_device *dev)
+static inline bool netif_is_l3_master(const struct net_device *dev)
 {
-       return dev->priv_flags & IFF_VRF_MASTER;
+       return dev->priv_flags & IFF_L3MDEV_MASTER;
 }
 
 static inline bool netif_is_bridge_master(const struct net_device *dev)
        return dev->priv_flags & IFF_OPENVSWITCH;
 }
 
-static inline bool netif_index_is_vrf(struct net *net, int ifindex)
+static inline bool netif_index_is_l3_master(struct net *net, int ifindex)
 {
        bool rc = false;
 
 
        dev = dev_get_by_index_rcu(net, ifindex);
        if (dev)
-               rc = netif_is_vrf(dev);
+               rc = netif_is_l3_master(dev);
 
        rcu_read_unlock();
 #endif
 
        if (inet_sk(sk)->transparent)
                flow_flags |= FLOWI_FLAG_ANYSRC;
 
-       if (netif_index_is_vrf(sock_net(sk), oif))
+       if (netif_index_is_l3_master(sock_net(sk), oif))
                flow_flags |= FLOWI_FLAG_VRFSRC | FLOWI_FLAG_SKIP_NH_OIF;
 
        flowi4_init_output(fl4, oif, sk->sk_mark, tos, RT_SCOPE_UNIVERSE,
 
        if (!dev)
                return 0;
 
-       if (netif_is_vrf(dev)) {
+       if (netif_is_l3_master(dev)) {
                ifindex = dev->ifindex;
        } else {
                vrf_ptr = rcu_dereference(dev->vrf_ptr);
        return tb_id;
 }
 
-/* caller has already checked netif_is_vrf(dev) */
+/* caller has already checked netif_is_l3_master(dev) */
 static inline struct rtable *vrf_dev_get_rth(const struct net_device *dev)
 {
        struct rtable *rth = ERR_PTR(-ENETUNREACH);
 
        }
 
        oif = arg->bound_dev_if;
-       if (!oif && netif_index_is_vrf(net, skb->skb_iif))
+       if (!oif && netif_index_is_l3_master(net, skb->skb_iif))
                oif = skb->skb_iif;
 
        flowi4_init_output(&fl4, oif,
 
                                fl4->saddr = inet_select_addr(dev_out, 0,
                                                              RT_SCOPE_HOST);
                }
-               if (netif_is_vrf(dev_out) &&
+               if (netif_is_l3_master(dev_out) &&
                    !(fl4->flowi4_flags & FLOWI_FLAG_VRFSRC)) {
                        rth = vrf_dev_get_rth(dev_out);
                        goto out;
 
                 * device lookup source address from VRF table. This mimics
                 * behavior of ip_route_connect{_init}.
                 */
-               if (netif_index_is_vrf(net, ipc.oif)) {
+               if (netif_index_is_l3_master(net, ipc.oif)) {
                        flowi4_init_output(fl4, ipc.oif, sk->sk_mark, tos,
                                           RT_SCOPE_UNIVERSE, sk->sk_protocol,
                                           (flow_flags | FLOWI_FLAG_VRFSRC |