Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
f9d75166
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
f9d75166
编写于
7月 02, 2012
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
br_netfilter: Convert to dst_neigh_lookup_skb().
Signed-off-by:
N
David S. Miller
<
davem@davemloft.net
>
上级
c4737377
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
23 addition
and
13 deletion
+23
-13
net/bridge/br_netfilter.c
net/bridge/br_netfilter.c
+23
-13
未找到文件。
net/bridge/br_netfilter.c
浏览文件 @
f9d75166
...
...
@@ -375,19 +375,29 @@ static int br_nf_pre_routing_finish_bridge(struct sk_buff *skb)
if
(
!
skb
->
dev
)
goto
free_skb
;
dst
=
skb_dst
(
skb
);
neigh
=
dst_get_neighbour_noref
(
dst
);
if
(
neigh
->
hh
.
hh_len
)
{
neigh_hh_bridge
(
&
neigh
->
hh
,
skb
);
skb
->
dev
=
nf_bridge
->
physindev
;
return
br_handle_frame_finish
(
skb
);
}
else
{
/* the neighbour function below overwrites the complete
* MAC header, so we save the Ethernet source address and
* protocol number. */
skb_copy_from_linear_data_offset
(
skb
,
-
(
ETH_HLEN
-
ETH_ALEN
),
skb
->
nf_bridge
->
data
,
ETH_HLEN
-
ETH_ALEN
);
/* tell br_dev_xmit to continue with forwarding */
nf_bridge
->
mask
|=
BRNF_BRIDGED_DNAT
;
return
neigh
->
output
(
neigh
,
skb
);
neigh
=
dst_neigh_lookup_skb
(
dst
,
skb
);
if
(
neigh
)
{
int
ret
;
if
(
neigh
->
hh
.
hh_len
)
{
neigh_hh_bridge
(
&
neigh
->
hh
,
skb
);
skb
->
dev
=
nf_bridge
->
physindev
;
ret
=
br_handle_frame_finish
(
skb
);
}
else
{
/* the neighbour function below overwrites the complete
* MAC header, so we save the Ethernet source address and
* protocol number.
*/
skb_copy_from_linear_data_offset
(
skb
,
-
(
ETH_HLEN
-
ETH_ALEN
),
skb
->
nf_bridge
->
data
,
ETH_HLEN
-
ETH_ALEN
);
/* tell br_dev_xmit to continue with forwarding */
nf_bridge
->
mask
|=
BRNF_BRIDGED_DNAT
;
ret
=
neigh
->
output
(
neigh
,
skb
);
}
neigh_release
(
neigh
);
return
ret
;
}
free_skb:
kfree_skb
(
skb
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录