linux/net/ipv6/rpl_iptunnel.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Authors:
 * (C) 2020 Alexander Aring <[email protected]>
 */

#include <linux/rpl_iptunnel.h>

#include <net/dst_cache.h>
#include <net/ip6_route.h>
#include <net/lwtunnel.h>
#include <net/ipv6.h>
#include <net/rpl.h>

struct rpl_iptunnel_encap {};

struct rpl_lwt {};

static inline struct rpl_lwt *rpl_lwt_lwtunnel(struct lwtunnel_state *lwt)
{}

static inline struct rpl_iptunnel_encap *
rpl_encap_lwtunnel(struct lwtunnel_state *lwt)
{}

static const struct nla_policy rpl_iptunnel_policy[RPL_IPTUNNEL_MAX + 1] =;

static bool rpl_validate_srh(struct net *net, struct ipv6_rpl_sr_hdr *srh,
			     size_t seglen)
{}

static int rpl_build_state(struct net *net, struct nlattr *nla,
			   unsigned int family, const void *cfg,
			   struct lwtunnel_state **ts,
			   struct netlink_ext_ack *extack)
{}

static void rpl_destroy_state(struct lwtunnel_state *lwt)
{}

static int rpl_do_srh_inline(struct sk_buff *skb, const struct rpl_lwt *rlwt,
			     const struct ipv6_rpl_sr_hdr *srh)
{}

static int rpl_do_srh(struct sk_buff *skb, const struct rpl_lwt *rlwt)
{}

static int rpl_output(struct net *net, struct sock *sk, struct sk_buff *skb)
{}

static int rpl_input(struct sk_buff *skb)
{}

static int nla_put_rpl_srh(struct sk_buff *skb, int attrtype,
			   struct rpl_iptunnel_encap *tuninfo)
{}

static int rpl_fill_encap_info(struct sk_buff *skb,
			       struct lwtunnel_state *lwtstate)
{}

static int rpl_encap_nlsize(struct lwtunnel_state *lwtstate)
{}

static int rpl_encap_cmp(struct lwtunnel_state *a, struct lwtunnel_state *b)
{}

static const struct lwtunnel_encap_ops rpl_ops =;

int __init rpl_init(void)
{}

void rpl_exit(void)
{}