Release 4.7 include/net/lwtunnel.h
#ifndef __NET_LWTUNNEL_H
#define __NET_LWTUNNEL_H 1
#include <linux/lwtunnel.h>
#include <linux/netdevice.h>
#include <linux/skbuff.h>
#include <linux/types.h>
#include <net/route.h>
#define LWTUNNEL_HASH_BITS 7
#define LWTUNNEL_HASH_SIZE (1 << LWTUNNEL_HASH_BITS)
/* lw tunnel state flags */
#define LWTUNNEL_STATE_OUTPUT_REDIRECT BIT(0)
#define LWTUNNEL_STATE_INPUT_REDIRECT BIT(1)
struct lwtunnel_state {
__u16 type;
__u16 flags;
atomic_t refcnt;
int (*orig_output)(struct net *net, struct sock *sk, struct sk_buff *skb);
int (*orig_input)(struct sk_buff *);
int len;
__u8 data[0];
};
struct lwtunnel_encap_ops {
int (*build_state)(struct net_device *dev, struct nlattr *encap,
unsigned int family, const void *cfg,
struct lwtunnel_state **ts);
int (*output)(struct net *net, struct sock *sk, struct sk_buff *skb);
int (*input)(struct sk_buff *skb);
int (*fill_encap)(struct sk_buff *skb,
struct lwtunnel_state *lwtstate);
int (*get_encap_size)(struct lwtunnel_state *lwtstate);
int (*cmp_encap)(struct lwtunnel_state *a, struct lwtunnel_state *b);
};
#ifdef CONFIG_LWTUNNEL
static inline void lwtstate_free(struct lwtunnel_state *lws)
{
kfree(lws);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
jiri benc | jiri benc | 17 | 100.00% | 1 | 100.00% |
| Total | 17 | 100.00% | 1 | 100.00% |
static inline struct lwtunnel_state *
lwtstate_get(struct lwtunnel_state *lws)
{
if (lws)
atomic_inc(&lws->refcnt);
return lws;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
roopa prabhu | roopa prabhu | 18 | 62.07% | 1 | 50.00% |
nicolas dichtel | nicolas dichtel | 11 | 37.93% | 1 | 50.00% |
| Total | 29 | 100.00% | 2 | 100.00% |
static inline void lwtstate_put(struct lwtunnel_state *lws)
{
if (!lws)
return;
if (atomic_dec_and_test(&lws->refcnt))
lwtstate_free(lws);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
roopa prabhu | roopa prabhu | 31 | 93.94% | 1 | 33.33% |
nicolas dichtel | nicolas dichtel | 1 | 3.03% | 1 | 33.33% |
jiri benc | jiri benc | 1 | 3.03% | 1 | 33.33% |
| Total | 33 | 100.00% | 3 | 100.00% |
static inline bool lwtunnel_output_redirect(struct lwtunnel_state *lwtstate)
{
if (lwtstate && (lwtstate->flags & LWTUNNEL_STATE_OUTPUT_REDIRECT))
return true;
return false;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
roopa prabhu | roopa prabhu | 30 | 100.00% | 1 | 100.00% |
| Total | 30 | 100.00% | 1 | 100.00% |
static inline bool lwtunnel_input_redirect(struct lwtunnel_state *lwtstate)
{
if (lwtstate && (lwtstate->flags & LWTUNNEL_STATE_INPUT_REDIRECT))
return true;
return false;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
tom herbert | tom herbert | 30 | 100.00% | 1 | 100.00% |
| Total | 30 | 100.00% | 1 | 100.00% |
int lwtunnel_encap_add_ops(const struct lwtunnel_encap_ops *op,
unsigned int num);
int lwtunnel_encap_del_ops(const struct lwtunnel_encap_ops *op,
unsigned int num);
int lwtunnel_build_state(struct net_device *dev, u16 encap_type,
struct nlattr *encap,
unsigned int family, const void *cfg,
struct lwtunnel_state **lws);
int lwtunnel_fill_encap(struct sk_buff *skb,
struct lwtunnel_state *lwtstate);
int lwtunnel_get_encap_size(struct lwtunnel_state *lwtstate);
struct lwtunnel_state *lwtunnel_state_alloc(int hdr_len);
int lwtunnel_cmp_encap(struct lwtunnel_state *a, struct lwtunnel_state *b);
int lwtunnel_output(struct net *net, struct sock *sk, struct sk_buff *skb);
int lwtunnel_input(struct sk_buff *skb);
#else
static inline void lwtstate_free(struct lwtunnel_state *lws)
{
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
ying xue | ying xue | 11 | 100.00% | 1 | 100.00% |
| Total | 11 | 100.00% | 1 | 100.00% |
static inline struct lwtunnel_state *
lwtstate_get(struct lwtunnel_state *lws)
{
return lws;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
nicolas dichtel | nicolas dichtel | 9 | 52.94% | 1 | 50.00% |
roopa prabhu | roopa prabhu | 8 | 47.06% | 1 | 50.00% |
| Total | 17 | 100.00% | 2 | 100.00% |
static inline void lwtstate_put(struct lwtunnel_state *lws)
{
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
roopa prabhu | roopa prabhu | 10 | 90.91% | 1 | 50.00% |
nicolas dichtel | nicolas dichtel | 1 | 9.09% | 1 | 50.00% |
| Total | 11 | 100.00% | 2 | 100.00% |
static inline bool lwtunnel_output_redirect(struct lwtunnel_state *lwtstate)
{
return false;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
roopa prabhu | roopa prabhu | 15 | 100.00% | 1 | 100.00% |
| Total | 15 | 100.00% | 1 | 100.00% |
static inline bool lwtunnel_input_redirect(struct lwtunnel_state *lwtstate)
{
return false;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
tom herbert | tom herbert | 15 | 100.00% | 1 | 100.00% |
| Total | 15 | 100.00% | 1 | 100.00% |
static inline int lwtunnel_encap_add_ops(const struct lwtunnel_encap_ops *op,
unsigned int num)
{
return -EOPNOTSUPP;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
roopa prabhu | roopa prabhu | 21 | 100.00% | 1 | 100.00% |
| Total | 21 | 100.00% | 1 | 100.00% |
static inline int lwtunnel_encap_del_ops(const struct lwtunnel_encap_ops *op,
unsigned int num)
{
return -EOPNOTSUPP;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
roopa prabhu | roopa prabhu | 21 | 100.00% | 1 | 100.00% |
| Total | 21 | 100.00% | 1 | 100.00% |
static inline int lwtunnel_build_state(struct net_device *dev, u16 encap_type,
struct nlattr *encap,
unsigned int family, const void *cfg,
struct lwtunnel_state **lws)
{
return -EOPNOTSUPP;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
roopa prabhu | roopa prabhu | 30 | 76.92% | 1 | 50.00% |
tom herbert | tom herbert | 9 | 23.08% | 1 | 50.00% |
| Total | 39 | 100.00% | 2 | 100.00% |
static inline int lwtunnel_fill_encap(struct sk_buff *skb,
struct lwtunnel_state *lwtstate)
{
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
roopa prabhu | roopa prabhu | 20 | 100.00% | 1 | 100.00% |
| Total | 20 | 100.00% | 1 | 100.00% |
static inline int lwtunnel_get_encap_size(struct lwtunnel_state *lwtstate)
{
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
roopa prabhu | roopa prabhu | 15 | 100.00% | 1 | 100.00% |
| Total | 15 | 100.00% | 1 | 100.00% |
static inline struct lwtunnel_state *lwtunnel_state_alloc(int hdr_len)
{
return NULL;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
roopa prabhu | roopa prabhu | 15 | 100.00% | 1 | 100.00% |
| Total | 15 | 100.00% | 1 | 100.00% |
static inline int lwtunnel_cmp_encap(struct lwtunnel_state *a,
struct lwtunnel_state *b)
{
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
roopa prabhu | roopa prabhu | 20 | 100.00% | 1 | 100.00% |
| Total | 20 | 100.00% | 1 | 100.00% |
static inline int lwtunnel_output(struct net *net, struct sock *sk, struct sk_buff *skb)
{
return -EOPNOTSUPP;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
roopa prabhu | roopa prabhu | 21 | 80.77% | 1 | 50.00% |
eric w. biederman | eric w. biederman | 5 | 19.23% | 1 | 50.00% |
| Total | 26 | 100.00% | 2 | 100.00% |
static inline int lwtunnel_input(struct sk_buff *skb)
{
return -EOPNOTSUPP;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
tom herbert | tom herbert | 16 | 100.00% | 1 | 100.00% |
| Total | 16 | 100.00% | 1 | 100.00% |
#endif /* CONFIG_LWTUNNEL */
#define MODULE_ALIAS_RTNL_LWT(encap_type) MODULE_ALIAS("rtnl-lwt-" __stringify(encap_type))
#endif /* __NET_LWTUNNEL_H */
Overall Contributors
| Person | Tokens | Prop | Commits | CommitProp |
roopa prabhu | roopa prabhu | 545 | 71.24% | 2 | 22.22% |
tom herbert | tom herbert | 141 | 18.43% | 2 | 22.22% |
nicolas dichtel | nicolas dichtel | 22 | 2.88% | 1 | 11.11% |
eric w. biederman | eric w. biederman | 20 | 2.61% | 1 | 11.11% |
jiri benc | jiri benc | 18 | 2.35% | 1 | 11.11% |
ying xue | ying xue | 11 | 1.44% | 1 | 11.11% |
robert shearman | robert shearman | 8 | 1.05% | 1 | 11.11% |
| Total | 765 | 100.00% | 9 | 100.00% |
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.