cregit-Linux how code gets into the kernel

Release 4.15 include/linux/if_macvlan.h

Directory: include/linux
/* SPDX-License-Identifier: GPL-2.0 */
#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>

struct macvlan_port;


#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;
	
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 Bergmann5558.51%125.00%
Eric Dumazet3840.43%250.00%
Li 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[], struct netlink_ext_ack *extack); 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 Kubeček30100.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 Kubeček21100.00%1100.00%
Total21100.00%1100.00%

#endif #endif /* _LINUX_IF_MACVLAN_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Arnd Bergmann18150.70%15.88%
Michal Kubeček6117.09%15.88%
Eric Dumazet5715.97%317.65%
Herbert Xu102.80%15.88%
Ding Tianhong102.80%15.88%
Patrick McHardy92.52%15.88%
John Fastabend71.96%211.76%
Vlad Yasevich61.68%211.76%
David Ahern51.40%15.88%
Li RongQing51.40%15.88%
Michael Braun41.12%15.88%
Greg Kroah-Hartman10.28%15.88%
Tejun Heo10.28%15.88%
Total357100.00%17100.00%
Directory: include/linux
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.