#include <linux/if_vlan.h>
#include <linux/kernel.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/ethtool.h>
#include <linux/skbuff.h>
#include <net/dst.h>
#include <net/xfrm.h>
#include <net/rtnetlink.h>
#include "datapath.h"
#include "vport-internal_dev.h"
#include "vport-netdev.h"
struct internal_dev { … };
static struct vport_ops ovs_internal_vport_ops;
static struct internal_dev *internal_dev_priv(struct net_device *netdev)
{ … }
static netdev_tx_t
internal_dev_xmit(struct sk_buff *skb, struct net_device *netdev)
{ … }
static int internal_dev_open(struct net_device *netdev)
{ … }
static int internal_dev_stop(struct net_device *netdev)
{ … }
static void internal_dev_getinfo(struct net_device *netdev,
struct ethtool_drvinfo *info)
{ … }
static const struct ethtool_ops internal_dev_ethtool_ops = …;
static void internal_dev_destructor(struct net_device *dev)
{ … }
static const struct net_device_ops internal_dev_netdev_ops = …;
static struct rtnl_link_ops internal_dev_link_ops __read_mostly = …;
static void do_setup(struct net_device *netdev)
{ … }
static struct vport *internal_dev_create(const struct vport_parms *parms)
{ … }
static void internal_dev_destroy(struct vport *vport)
{ … }
static int internal_dev_recv(struct sk_buff *skb)
{ … }
static struct vport_ops ovs_internal_vport_ops = …;
int ovs_is_internal_dev(const struct net_device *netdev)
{ … }
struct vport *ovs_internal_dev_get_vport(struct net_device *netdev)
{ … }
int ovs_internal_dev_rtnl_link_register(void)
{ … }
void ovs_internal_dev_rtnl_link_unregister(void)
{ … }