@ -26,6 +26,7 @@
# include <net/dst.h>
# include <net/xfrm.h>
# include <net/rtnetlink.h>
# include "datapath.h"
# include "vport-internal_dev.h"
@ -121,6 +122,10 @@ static const struct net_device_ops internal_dev_netdev_ops = {
. ndo_get_stats64 = internal_dev_get_stats ,
} ;
static struct rtnl_link_ops internal_dev_link_ops __read_mostly = {
. kind = " openvswitch " ,
} ;
static void do_setup ( struct net_device * netdev )
{
ether_setup ( netdev ) ;
@ -131,6 +136,7 @@ static void do_setup(struct net_device *netdev)
netdev - > priv_flags | = IFF_LIVE_ADDR_CHANGE ;
netdev - > destructor = internal_dev_destructor ;
netdev - > ethtool_ops = & internal_dev_ethtool_ops ;
netdev - > rtnl_link_ops = & internal_dev_link_ops ;
netdev - > tx_queue_len = 0 ;
netdev - > features = NETIF_F_LLTX | NETIF_F_SG | NETIF_F_FRAGLIST |
@ -248,3 +254,13 @@ struct vport *ovs_internal_dev_get_vport(struct net_device *netdev)
return internal_dev_priv ( netdev ) - > vport ;
}
int ovs_internal_dev_rtnl_link_register ( void )
{
return rtnl_link_register ( & internal_dev_link_ops ) ;
}
void ovs_internal_dev_rtnl_link_unregister ( void )
{
rtnl_link_unregister ( & internal_dev_link_ops ) ;
}