[IPV6]: Export ipv6_opt_accepted
It was already non-TCP specific, will be used by DCCPv6. Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
f21e68caa0
commit
399c07def6
@@ -240,6 +240,8 @@ extern struct ipv6_txoptions * ipv6_renew_options(struct sock *sk, struct ipv6_t
|
|||||||
struct ipv6_txoptions *ipv6_fixup_options(struct ipv6_txoptions *opt_space,
|
struct ipv6_txoptions *ipv6_fixup_options(struct ipv6_txoptions *opt_space,
|
||||||
struct ipv6_txoptions *opt);
|
struct ipv6_txoptions *opt);
|
||||||
|
|
||||||
|
extern int ipv6_opt_accepted(struct sock *sk, struct sk_buff *skb);
|
||||||
|
|
||||||
extern int ip6_frag_nqueues;
|
extern int ip6_frag_nqueues;
|
||||||
extern atomic_t ip6_frag_mem;
|
extern atomic_t ip6_frag_mem;
|
||||||
|
|
||||||
|
@@ -663,6 +663,27 @@ int inet6_sk_rebuild_header(struct sock *sk)
|
|||||||
|
|
||||||
EXPORT_SYMBOL_GPL(inet6_sk_rebuild_header);
|
EXPORT_SYMBOL_GPL(inet6_sk_rebuild_header);
|
||||||
|
|
||||||
|
int ipv6_opt_accepted(struct sock *sk, struct sk_buff *skb)
|
||||||
|
{
|
||||||
|
struct ipv6_pinfo *np = inet6_sk(sk);
|
||||||
|
struct inet6_skb_parm *opt = IP6CB(skb);
|
||||||
|
|
||||||
|
if (np->rxopt.all) {
|
||||||
|
if ((opt->hop && (np->rxopt.bits.hopopts ||
|
||||||
|
np->rxopt.bits.ohopopts)) ||
|
||||||
|
((IPV6_FLOWINFO_MASK & *(u32*)skb->nh.raw) &&
|
||||||
|
np->rxopt.bits.rxflow) ||
|
||||||
|
(opt->srcrt && (np->rxopt.bits.srcrt ||
|
||||||
|
np->rxopt.bits.osrcrt)) ||
|
||||||
|
((opt->dst1 || opt->dst0) &&
|
||||||
|
(np->rxopt.bits.dstopts || np->rxopt.bits.odstopts)))
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
EXPORT_SYMBOL_GPL(ipv6_opt_accepted);
|
||||||
|
|
||||||
int
|
int
|
||||||
snmp6_mib_init(void *ptr[2], size_t mibsize, size_t mibalign)
|
snmp6_mib_init(void *ptr[2], size_t mibsize, size_t mibalign)
|
||||||
{
|
{
|
||||||
|
@@ -711,22 +711,6 @@ static struct request_sock_ops tcp6_request_sock_ops = {
|
|||||||
.send_reset = tcp_v6_send_reset
|
.send_reset = tcp_v6_send_reset
|
||||||
};
|
};
|
||||||
|
|
||||||
static int ipv6_opt_accepted(struct sock *sk, struct sk_buff *skb)
|
|
||||||
{
|
|
||||||
struct ipv6_pinfo *np = inet6_sk(sk);
|
|
||||||
struct inet6_skb_parm *opt = IP6CB(skb);
|
|
||||||
|
|
||||||
if (np->rxopt.all) {
|
|
||||||
if ((opt->hop && (np->rxopt.bits.hopopts || np->rxopt.bits.ohopopts)) ||
|
|
||||||
((IPV6_FLOWINFO_MASK & *(u32*)skb->nh.raw) && np->rxopt.bits.rxflow) ||
|
|
||||||
(opt->srcrt && (np->rxopt.bits.srcrt || np->rxopt.bits.osrcrt)) ||
|
|
||||||
((opt->dst1 || opt->dst0) && (np->rxopt.bits.dstopts || np->rxopt.bits.odstopts)))
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void tcp_v6_send_check(struct sock *sk, int len, struct sk_buff *skb)
|
static void tcp_v6_send_check(struct sock *sk, int len, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
struct ipv6_pinfo *np = inet6_sk(sk);
|
struct ipv6_pinfo *np = inet6_sk(sk);
|
||||||
|
Reference in New Issue
Block a user