cregit-Linux how code gets into the kernel

Release 4.12 include/linux/mroute6.h

Directory: include/linux
#ifndef __LINUX_MROUTE6_H

#define __LINUX_MROUTE6_H


#include <linux/pim.h>
#include <linux/skbuff.h>	/* for struct sk_buff_head */
#include <net/net_namespace.h>
#include <uapi/linux/mroute6.h>

#ifdef CONFIG_IPV6_MROUTE

static inline int ip6_mroute_opt(int opt) { return (opt >= MRT6_BASE) && (opt <= MRT6_MAX); }

Contributors

PersonTokensPropCommitsCommitProp
Hideaki Yoshifuji / 吉藤英明2295.65%150.00%
Nicolas Dichtel14.35%150.00%
Total23100.00%2100.00%

#else
static inline int ip6_mroute_opt(int opt) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Hideaki Yoshifuji / 吉藤英明13100.00%1100.00%
Total13100.00%1100.00%

#endif struct sock; #ifdef CONFIG_IPV6_MROUTE extern int ip6_mroute_setsockopt(struct sock *, int, char __user *, unsigned int); extern int ip6_mroute_getsockopt(struct sock *, int, char __user *, int __user *); extern int ip6_mr_input(struct sk_buff *skb); extern int ip6mr_ioctl(struct sock *sk, int cmd, void __user *arg); extern int ip6mr_compat_ioctl(struct sock *sk, unsigned int cmd, void __user *arg); extern int ip6_mr_init(void); extern void ip6_mr_cleanup(void); #else
static inline int ip6_mroute_setsockopt(struct sock *sock, int optname, char __user *optval, unsigned int optlen) { return -ENOPROTOOPT; }

Contributors

PersonTokensPropCommitsCommitProp
Hideaki Yoshifuji / 吉藤英明2796.43%150.00%
David S. Miller13.57%150.00%
Total28100.00%2100.00%


static inline int ip6_mroute_getsockopt(struct sock *sock, int optname, char __user *optval, int __user *optlen) { return -ENOPROTOOPT; }

Contributors

PersonTokensPropCommitsCommitProp
Hideaki Yoshifuji / 吉藤英明29100.00%1100.00%
Total29100.00%1100.00%


static inline int ip6mr_ioctl(struct sock *sk, int cmd, void __user *arg) { return -ENOIOCTLCMD; }

Contributors

PersonTokensPropCommitsCommitProp
Hideaki Yoshifuji / 吉藤英明24100.00%1100.00%
Total24100.00%1100.00%


static inline int ip6_mr_init(void) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Hideaki Yoshifuji / 吉藤英明12100.00%1100.00%
Total12100.00%1100.00%


static inline void ip6_mr_cleanup(void) { return; }

Contributors

PersonTokensPropCommitsCommitProp
Hideaki Yoshifuji / 吉藤英明10100.00%1100.00%
Total10100.00%1100.00%

#endif struct mif_device { struct net_device *dev; /* Device we are using */ unsigned long bytes_in,bytes_out; unsigned long pkt_in,pkt_out; /* Statistics */ unsigned long rate_limit; /* Traffic shaping (NI) */ unsigned char threshold; /* TTL threshold */ unsigned short flags; /* Control flags */ int link; /* Physical interface index */ }; #define VIFF_STATIC 0x8000 struct mfc6_cache { struct list_head list; struct in6_addr mf6c_mcastgrp; /* Group the entry belongs to */ struct in6_addr mf6c_origin; /* Source of packet */ mifi_t mf6c_parent; /* Source interface */ int mfc_flags; /* Flags on line */ union { struct { unsigned long expires; struct sk_buff_head unresolved; /* Unresolved buffers */ } unres; struct { unsigned long last_assert; int minvif; int maxvif; unsigned long bytes; unsigned long pkt; unsigned long wrong_if; unsigned long lastuse; unsigned char ttls[MAXMIFS]; /* TTL thresholds */ } res; } mfc_un; }; #define MFC_STATIC 1 #define MFC_NOTIFY 2 #define MFC6_LINES 64 #define MFC6_HASH(a, g) (((__force u32)(a)->s6_addr32[0] ^ \ (__force u32)(a)->s6_addr32[1] ^ \ (__force u32)(a)->s6_addr32[2] ^ \ (__force u32)(a)->s6_addr32[3] ^ \ (__force u32)(g)->s6_addr32[0] ^ \ (__force u32)(g)->s6_addr32[1] ^ \ (__force u32)(g)->s6_addr32[2] ^ \ (__force u32)(g)->s6_addr32[3]) % MFC6_LINES) #define MFC_ASSERT_THRESH (3*HZ) /* Maximal freq. of asserts */ struct rtmsg; extern int ip6mr_get_route(struct net *net, struct sk_buff *skb, struct rtmsg *rtm, u32 portid); #ifdef CONFIG_IPV6_MROUTE extern struct sock *mroute6_socket(struct net *net, struct sk_buff *skb); extern int ip6mr_sk_done(struct sock *sk); #else
static inline struct sock *mroute6_socket(struct net *net, struct sk_buff *skb) { return NULL; }

Contributors

PersonTokensPropCommitsCommitProp
Benjamin Thery1672.73%133.33%
Patrick McHardy522.73%133.33%
Hideaki Yoshifuji / 吉藤英明14.55%133.33%
Total22100.00%3100.00%


static inline int ip6mr_sk_done(struct sock *sk) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Hideaki Yoshifuji / 吉藤英明15100.00%1100.00%
Total15100.00%1100.00%

#endif #endif

Overall Contributors

PersonTokensPropCommitsCommitProp
Hideaki Yoshifuji / 吉藤英明44684.15%214.29%
Benjamin Thery295.47%214.29%
David S. Miller213.96%214.29%
Patrick McHardy142.64%321.43%
Wang Chen81.51%17.14%
Nikolay Aleksandrov61.13%214.29%
David Howells50.94%17.14%
Nicolas Dichtel10.19%17.14%
Total530100.00%14100.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.