Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
343a9972
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
343a9972
编写于
6月 09, 2009
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
netfilter: Use frag list abstraction interfaces.
Signed-off-by:
N
David S. Miller
<
davem@davemloft.net
>
上级
4d9092bb
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
5 addition
and
4 deletion
+5
-4
net/ipv4/netfilter/nf_nat_proto_sctp.c
net/ipv4/netfilter/nf_nat_proto_sctp.c
+3
-2
net/ipv6/netfilter/nf_conntrack_reasm.c
net/ipv6/netfilter/nf_conntrack_reasm.c
+2
-2
未找到文件。
net/ipv4/netfilter/nf_nat_proto_sctp.c
浏览文件 @
343a9972
...
...
@@ -33,6 +33,7 @@ sctp_manip_pkt(struct sk_buff *skb,
enum
nf_nat_manip_type
maniptype
)
{
const
struct
iphdr
*
iph
=
(
struct
iphdr
*
)(
skb
->
data
+
iphdroff
);
struct
sk_buff
*
frag
;
sctp_sctphdr_t
*
hdr
;
unsigned
int
hdroff
=
iphdroff
+
iph
->
ihl
*
4
;
__be32
oldip
,
newip
;
...
...
@@ -57,8 +58,8 @@ sctp_manip_pkt(struct sk_buff *skb,
}
crc32
=
sctp_start_cksum
((
u8
*
)
hdr
,
skb_headlen
(
skb
)
-
hdroff
);
for
(
skb
=
skb_shinfo
(
skb
)
->
frag_list
;
skb
;
skb
=
skb
->
next
)
crc32
=
sctp_update_cksum
((
u8
*
)
skb
->
data
,
skb_headlen
(
skb
),
skb_walk_frags
(
skb
,
frag
);
crc32
=
sctp_update_cksum
((
u8
*
)
frag
->
data
,
skb_headlen
(
frag
),
crc32
);
crc32
=
sctp_end_cksum
(
crc32
);
hdr
->
checksum
=
crc32
;
...
...
net/ipv6/netfilter/nf_conntrack_reasm.c
浏览文件 @
343a9972
...
...
@@ -409,7 +409,7 @@ nf_ct_frag6_reasm(struct nf_ct_frag6_queue *fq, struct net_device *dev)
/* If the first fragment is fragmented itself, we split
* it to two chunks: the first with data and paged part
* and the second, holding only fragments. */
if
(
skb_
shinfo
(
head
)
->
frag_list
)
{
if
(
skb_
has_frags
(
head
)
)
{
struct
sk_buff
*
clone
;
int
i
,
plen
=
0
;
...
...
@@ -420,7 +420,7 @@ nf_ct_frag6_reasm(struct nf_ct_frag6_queue *fq, struct net_device *dev)
clone
->
next
=
head
->
next
;
head
->
next
=
clone
;
skb_shinfo
(
clone
)
->
frag_list
=
skb_shinfo
(
head
)
->
frag_list
;
skb_
shinfo
(
head
)
->
frag_list
=
NULL
;
skb_
frag_list_init
(
head
)
;
for
(
i
=
0
;
i
<
skb_shinfo
(
head
)
->
nr_frags
;
i
++
)
plen
+=
skb_shinfo
(
head
)
->
frags
[
i
].
size
;
clone
->
len
=
clone
->
data_len
=
head
->
data_len
-
plen
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录