#include <linux/etherdevice.h>
#include <linux/ethtool.h>
#include <linux/if_arp.h>
#include <net/pkt_sched.h>
#include "rmnet_config.h"
#include "rmnet_handlers.h"
#include "rmnet_private.h"
#include "rmnet_map.h"
#include "rmnet_vnd.h"
void rmnet_vnd_rx_fixup(struct sk_buff *skb, struct net_device *dev)
{ … }
void rmnet_vnd_tx_fixup_len(unsigned int len, struct net_device *dev)
{ … }
void rmnet_vnd_tx_fixup(struct sk_buff *skb, struct net_device *dev)
{ … }
static netdev_tx_t rmnet_vnd_start_xmit(struct sk_buff *skb,
struct net_device *dev)
{ … }
static int rmnet_vnd_headroom(struct rmnet_port *port)
{ … }
static int rmnet_vnd_change_mtu(struct net_device *rmnet_dev, int new_mtu)
{ … }
static int rmnet_vnd_get_iflink(const struct net_device *dev)
{ … }
static int rmnet_vnd_init(struct net_device *dev)
{ … }
static void rmnet_vnd_uninit(struct net_device *dev)
{ … }
static void rmnet_get_stats64(struct net_device *dev,
struct rtnl_link_stats64 *s)
{ … }
static const struct net_device_ops rmnet_vnd_ops = …;
static const char rmnet_gstrings_stats[][ETH_GSTRING_LEN] = …;
static void rmnet_get_strings(struct net_device *dev, u32 stringset, u8 *buf)
{ … }
static int rmnet_get_sset_count(struct net_device *dev, int sset)
{ … }
static void rmnet_get_ethtool_stats(struct net_device *dev,
struct ethtool_stats *stats, u64 *data)
{ … }
static int rmnet_get_coalesce(struct net_device *dev,
struct ethtool_coalesce *coal,
struct kernel_ethtool_coalesce *kernel_coal,
struct netlink_ext_ack *extack)
{ … }
static int rmnet_set_coalesce(struct net_device *dev,
struct ethtool_coalesce *coal,
struct kernel_ethtool_coalesce *kernel_coal,
struct netlink_ext_ack *extack)
{ … }
static const struct ethtool_ops rmnet_ethtool_ops = …;
void rmnet_vnd_setup(struct net_device *rmnet_dev)
{ … }
int rmnet_vnd_newlink(u8 id, struct net_device *rmnet_dev,
struct rmnet_port *port,
struct net_device *real_dev,
struct rmnet_endpoint *ep,
struct netlink_ext_ack *extack)
{ … }
int rmnet_vnd_dellink(u8 id, struct rmnet_port *port,
struct rmnet_endpoint *ep)
{ … }
int rmnet_vnd_do_flow_control(struct net_device *rmnet_dev, int enable)
{ … }
int rmnet_vnd_validate_real_dev_mtu(struct net_device *real_dev)
{ … }
int rmnet_vnd_update_dev_mtu(struct rmnet_port *port,
struct net_device *real_dev)
{ … }