Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
464143c9
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 3 年多
通知
13
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
464143c9
编写于
1月 12, 2011
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://1984.lsi.us.es/net-2.6
上级
bb123105
2fc72c7b
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
34 addition
and
11 deletion
+34
-11
include/linux/skbuff.h
include/linux/skbuff.h
+15
-0
include/net/netfilter/ipv6/nf_conntrack_ipv6.h
include/net/netfilter/ipv6/nf_conntrack_ipv6.h
+0
-10
include/net/netfilter/ipv6/nf_defrag_ipv6.h
include/net/netfilter/ipv6/nf_defrag_ipv6.h
+10
-0
net/core/skbuff.c
net/core/skbuff.c
+2
-0
net/ipv6/netfilter/nf_defrag_ipv6_hooks.c
net/ipv6/netfilter/nf_defrag_ipv6_hooks.c
+7
-1
未找到文件。
include/linux/skbuff.h
浏览文件 @
464143c9
...
...
@@ -255,6 +255,11 @@ typedef unsigned int sk_buff_data_t;
typedef
unsigned
char
*
sk_buff_data_t
;
#endif
#if defined(CONFIG_NF_DEFRAG_IPV4) || defined(CONFIG_NF_DEFRAG_IPV4_MODULE) || \
defined(CONFIG_NF_DEFRAG_IPV6) || defined(CONFIG_NF_DEFRAG_IPV6_MODULE)
#define NET_SKBUFF_NF_DEFRAG_NEEDED 1
#endif
/**
* struct sk_buff - socket buffer
* @next: Next buffer in list
...
...
@@ -362,6 +367,8 @@ struct sk_buff {
void
(
*
destructor
)(
struct
sk_buff
*
skb
);
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
struct
nf_conntrack
*
nfct
;
#endif
#ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
struct
sk_buff
*
nfct_reasm
;
#endif
#ifdef CONFIG_BRIDGE_NETFILTER
...
...
@@ -2057,6 +2064,8 @@ static inline void nf_conntrack_get(struct nf_conntrack *nfct)
if
(
nfct
)
atomic_inc
(
&
nfct
->
use
);
}
#endif
#ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
static
inline
void
nf_conntrack_get_reasm
(
struct
sk_buff
*
skb
)
{
if
(
skb
)
...
...
@@ -2085,6 +2094,8 @@ static inline void nf_reset(struct sk_buff *skb)
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
nf_conntrack_put
(
skb
->
nfct
);
skb
->
nfct
=
NULL
;
#endif
#ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
nf_conntrack_put_reasm
(
skb
->
nfct_reasm
);
skb
->
nfct_reasm
=
NULL
;
#endif
...
...
@@ -2101,6 +2112,8 @@ static inline void __nf_copy(struct sk_buff *dst, const struct sk_buff *src)
dst
->
nfct
=
src
->
nfct
;
nf_conntrack_get
(
src
->
nfct
);
dst
->
nfctinfo
=
src
->
nfctinfo
;
#endif
#ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
dst
->
nfct_reasm
=
src
->
nfct_reasm
;
nf_conntrack_get_reasm
(
src
->
nfct_reasm
);
#endif
...
...
@@ -2114,6 +2127,8 @@ static inline void nf_copy(struct sk_buff *dst, const struct sk_buff *src)
{
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
nf_conntrack_put
(
dst
->
nfct
);
#endif
#ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
nf_conntrack_put_reasm
(
dst
->
nfct_reasm
);
#endif
#ifdef CONFIG_BRIDGE_NETFILTER
...
...
include/net/netfilter/ipv6/nf_conntrack_ipv6.h
浏览文件 @
464143c9
...
...
@@ -7,16 +7,6 @@ extern struct nf_conntrack_l4proto nf_conntrack_l4proto_tcp6;
extern
struct
nf_conntrack_l4proto
nf_conntrack_l4proto_udp6
;
extern
struct
nf_conntrack_l4proto
nf_conntrack_l4proto_icmpv6
;
extern
int
nf_ct_frag6_init
(
void
);
extern
void
nf_ct_frag6_cleanup
(
void
);
extern
struct
sk_buff
*
nf_ct_frag6_gather
(
struct
sk_buff
*
skb
,
u32
user
);
extern
void
nf_ct_frag6_output
(
unsigned
int
hooknum
,
struct
sk_buff
*
skb
,
struct
net_device
*
in
,
struct
net_device
*
out
,
int
(
*
okfn
)(
struct
sk_buff
*
));
struct
inet_frags_ctl
;
#include <linux/sysctl.h>
extern
struct
ctl_table
nf_ct_ipv6_sysctl_table
[];
...
...
include/net/netfilter/ipv6/nf_defrag_ipv6.h
浏览文件 @
464143c9
...
...
@@ -3,4 +3,14 @@
extern
void
nf_defrag_ipv6_enable
(
void
);
extern
int
nf_ct_frag6_init
(
void
);
extern
void
nf_ct_frag6_cleanup
(
void
);
extern
struct
sk_buff
*
nf_ct_frag6_gather
(
struct
sk_buff
*
skb
,
u32
user
);
extern
void
nf_ct_frag6_output
(
unsigned
int
hooknum
,
struct
sk_buff
*
skb
,
struct
net_device
*
in
,
struct
net_device
*
out
,
int
(
*
okfn
)(
struct
sk_buff
*
));
struct
inet_frags_ctl
;
#endif
/* _NF_DEFRAG_IPV6_H */
net/core/skbuff.c
浏览文件 @
464143c9
...
...
@@ -380,6 +380,8 @@ static void skb_release_head_state(struct sk_buff *skb)
}
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
nf_conntrack_put
(
skb
->
nfct
);
#endif
#ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
nf_conntrack_put_reasm
(
skb
->
nfct_reasm
);
#endif
#ifdef CONFIG_BRIDGE_NETFILTER
...
...
net/ipv6/netfilter/nf_defrag_ipv6_hooks.c
浏览文件 @
464143c9
...
...
@@ -19,13 +19,15 @@
#include <linux/netfilter_ipv6.h>
#include <linux/netfilter_bridge.h>
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
#include <net/netfilter/nf_conntrack.h>
#include <net/netfilter/nf_conntrack_helper.h>
#include <net/netfilter/nf_conntrack_l4proto.h>
#include <net/netfilter/nf_conntrack_l3proto.h>
#include <net/netfilter/nf_conntrack_core.h>
#include <net/netfilter/nf_conntrack_zones.h>
#include <net/netfilter/ipv6/nf_conntrack_ipv6.h>
#endif
#include <net/netfilter/nf_conntrack_zones.h>
#include <net/netfilter/ipv6/nf_defrag_ipv6.h>
static
enum
ip6_defrag_users
nf_ct6_defrag_user
(
unsigned
int
hooknum
,
...
...
@@ -33,8 +35,10 @@ static enum ip6_defrag_users nf_ct6_defrag_user(unsigned int hooknum,
{
u16
zone
=
NF_CT_DEFAULT_ZONE
;
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
if
(
skb
->
nfct
)
zone
=
nf_ct_zone
((
struct
nf_conn
*
)
skb
->
nfct
);
#endif
#ifdef CONFIG_BRIDGE_NETFILTER
if
(
skb
->
nf_bridge
&&
...
...
@@ -56,9 +60,11 @@ static unsigned int ipv6_defrag(unsigned int hooknum,
{
struct
sk_buff
*
reasm
;
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
/* Previously seen (loopback)? */
if
(
skb
->
nfct
&&
!
nf_ct_is_template
((
struct
nf_conn
*
)
skb
->
nfct
))
return
NF_ACCEPT
;
#endif
reasm
=
nf_ct_frag6_gather
(
skb
,
nf_ct6_defrag_user
(
hooknum
,
skb
));
/* queued */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录