cregit-Linux how code gets into the kernel

Release 4.7 include/linux/if_macvlan.h

Directory: include/linux
#ifndef _LINUX_IF_MACVLAN_H

#define _LINUX_IF_MACVLAN_H

#include <linux/if_link.h>
#include <linux/if_vlan.h>
#include <linux/list.h>
#include <linux/netdevice.h>
#include <linux/netlink.h>
#include <net/netlink.h>
#include <linux/u64_stats_sync.h>

#if IS_ENABLED(CONFIG_MACVTAP)
struct socket *macvtap_get_socket(struct file *);
#else
#include <linux/err.h>
#include <linux/errno.h>
struct file;
struct socket;

static inline struct socket *macvtap_get_socket(struct file *f) { return ERR_PTR(-EINVAL); }

Contributors

PersonTokensPropCommitsCommitProp
arnd bergmannarnd bergmann21100.00%1100.00%
Total21100.00%1100.00%

#endif /* CONFIG_MACVTAP */ struct macvlan_port; struct macvtap_queue; /* * Maximum times a macvtap device can be opened. This can be used to * configure the number of receive queue, e.g. for multiqueue virtio. */ #define MAX_MACVTAP_QUEUES 256 #define MACVLAN_MC_FILTER_BITS 8 #define MACVLAN_MC_FILTER_SZ (1 << MACVLAN_MC_FILTER_BITS) struct macvlan_dev { struct net_device *dev; struct list_head list; struct hlist_node hlist; struct macvlan_port *port; struct net_device *lowerdev; void *fwd_priv; struct vlan_pcpu_stats __percpu *pcpu_stats; DECLARE_BITMAP(mc_filter, MACVLAN_MC_FILTER_SZ); netdev_features_t set_features; enum macvlan_mode mode; u16 flags; /* This array tracks active taps. */ struct macvtap_queue __rcu *taps[MAX_MACVTAP_QUEUES]; /* This list tracks all taps (both enabled and disabled) */ struct list_head queue_list; int numvtaps; int numqueues; netdev_features_t tap_features; int minor; int nest_level; #ifdef CONFIG_NET_POLL_CONTROLLER struct netpoll *netpoll; #endif unsigned int macaddr_count; };
static inline void macvlan_count_rx(const struct macvlan_dev *vlan, unsigned int len, bool success, bool multicast) { if (likely(success)) { struct vlan_pcpu_stats *pcpu_stats; pcpu_stats = this_cpu_ptr(vlan->pcpu_stats); u64_stats_update_begin(&pcpu_stats->syncp); pcpu_stats->rx_packets++; pcpu_stats->rx_bytes += len; if (multicast) pcpu_stats->rx_multicast++; u64_stats_update_end(&pcpu_stats->syncp); } else { this_cpu_inc(vlan->pcpu_stats->rx_errors); } }

Contributors

PersonTokensPropCommitsCommitProp
arnd bergmannarnd bergmann5558.51%125.00%
eric dumazeteric dumazet3840.43%250.00%
li rongqingli rongqing11.06%125.00%
Total94100.00%4100.00%

extern void macvlan_common_setup(struct net_device *dev); extern int macvlan_common_newlink(struct net *src_net, struct net_device *dev, struct nlattr *tb[], struct nlattr *data[]); extern void macvlan_count_rx(const struct macvlan_dev *vlan, unsigned int len, bool success, bool multicast); extern void macvlan_dellink(struct net_device *dev, struct list_head *head); extern int macvlan_link_register(struct rtnl_link_ops *ops); #if IS_ENABLED(CONFIG_MACVLAN)
static inline struct net_device * macvlan_dev_real_dev(const struct net_device *dev) { struct macvlan_dev *macvlan = netdev_priv(dev); return macvlan->lowerdev; }

Contributors

PersonTokensPropCommitsCommitProp
michal kubecekmichal kubecek30100.00%1100.00%
Total30100.00%1100.00%

#else
static inline struct net_device * macvlan_dev_real_dev(const struct net_device *dev) { BUG(); return NULL; }

Contributors

PersonTokensPropCommitsCommitProp
michal kubecekmichal kubecek21100.00%1100.00%
Total21100.00%1100.00%

#endif #endif /* _LINUX_IF_MACVLAN_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
arnd bergmannarnd bergmann24154.77%313.04%
michal kubecekmichal kubecek6113.86%14.35%
eric dumazeteric dumazet5712.95%313.04%
krishna kumarkrishna kumar112.50%14.35%
jason wangjason wang112.50%313.04%
ding tianhongding tianhong102.27%14.35%
herbert xuherbert xu102.27%14.35%
patrick mchardypatrick mchardy92.05%14.35%
vlad yasevichvlad yasevich92.05%28.70%
john fastabendjohn fastabend71.59%28.70%
li rongqingli rongqing51.14%14.35%
michael braunmichael braun40.91%14.35%
eric w. biedermaneric w. biederman30.68%14.35%
pankaj guptapankaj gupta10.23%14.35%
tejun heotejun heo10.23%14.35%
Total440100.00%23100.00%
Directory: include/linux
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}