Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
778d80be
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看板
提交
778d80be
编写于
6月 28, 2008
作者:
Y
YOSHIFUJI Hideaki
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ipv6: Add disable_ipv6 sysctl to disable IPv6 operaion on specific interface.
Signed-off-by:
N
YOSHIFUJI Hideaki
<
yoshfuji@linux-ipv6.org
>
上级
5ce83afa
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
26 addition
and
1 deletion
+26
-1
Documentation/networking/ip-sysctl.txt
Documentation/networking/ip-sysctl.txt
+4
-0
include/linux/ipv6.h
include/linux/ipv6.h
+2
-0
net/ipv6/addrconf.c
net/ipv6/addrconf.c
+11
-0
net/ipv6/ip6_input.c
net/ipv6/ip6_input.c
+2
-1
net/ipv6/ip6_output.c
net/ipv6/ip6_output.c
+7
-0
未找到文件。
Documentation/networking/ip-sysctl.txt
浏览文件 @
778d80be
...
...
@@ -1025,6 +1025,10 @@ max_addresses - INTEGER
autoconfigured addresses.
Default: 16
disable_ipv6 - BOOLEAN
Disable IPv6 operation.
Default: FALSE (enable IPv6 operation)
icmp/*:
ratelimit - INTEGER
Limit the maximal rates for sending ICMPv6 packets.
...
...
include/linux/ipv6.h
浏览文件 @
778d80be
...
...
@@ -163,6 +163,7 @@ struct ipv6_devconf {
#ifdef CONFIG_IPV6_MROUTE
__s32
mc_forwarding
;
#endif
__s32
disable_ipv6
;
void
*
sysctl
;
};
...
...
@@ -194,6 +195,7 @@ enum {
DEVCONF_OPTIMISTIC_DAD
,
DEVCONF_ACCEPT_SOURCE_ROUTE
,
DEVCONF_MC_FORWARDING
,
DEVCONF_DISABLE_IPV6
,
DEVCONF_MAX
};
...
...
net/ipv6/addrconf.c
浏览文件 @
778d80be
...
...
@@ -183,6 +183,7 @@ struct ipv6_devconf ipv6_devconf __read_mostly = {
#endif
.
proxy_ndp
=
0
,
.
accept_source_route
=
0
,
/* we do not accept RH0 by default. */
.
disable_ipv6
=
0
,
};
static
struct
ipv6_devconf
ipv6_devconf_dflt
__read_mostly
=
{
...
...
@@ -215,6 +216,7 @@ static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = {
#endif
.
proxy_ndp
=
0
,
.
accept_source_route
=
0
,
/* we do not accept RH0 by default. */
.
disable_ipv6
=
0
,
};
/* IPv6 Wildcard Address and Loopback Address defined by RFC2553 */
...
...
@@ -3657,6 +3659,7 @@ static inline void ipv6_store_devconf(struct ipv6_devconf *cnf,
#ifdef CONFIG_IPV6_MROUTE
array
[
DEVCONF_MC_FORWARDING
]
=
cnf
->
mc_forwarding
;
#endif
array
[
DEVCONF_DISABLE_IPV6
]
=
cnf
->
disable_ipv6
;
}
static
inline
size_t
inet6_if_nlmsg_size
(
void
)
...
...
@@ -4215,6 +4218,14 @@ static struct addrconf_sysctl_table
.
proc_handler
=
&
proc_dointvec
,
},
#endif
{
.
ctl_name
=
CTL_UNNUMBERED
,
.
procname
=
"disable_ipv6"
,
.
data
=
&
ipv6_devconf
.
disable_ipv6
,
.
maxlen
=
sizeof
(
int
),
.
mode
=
0644
,
.
proc_handler
=
&
proc_dointvec
,
},
{
.
ctl_name
=
0
,
/* sentinel */
}
...
...
net/ipv6/ip6_input.c
浏览文件 @
778d80be
...
...
@@ -71,7 +71,8 @@ int ipv6_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt
IP6_INC_STATS_BH
(
idev
,
IPSTATS_MIB_INRECEIVES
);
if
((
skb
=
skb_share_check
(
skb
,
GFP_ATOMIC
))
==
NULL
)
{
if
((
skb
=
skb_share_check
(
skb
,
GFP_ATOMIC
))
==
NULL
||
!
idev
||
unlikely
(
idev
->
cnf
.
disable_ipv6
))
{
IP6_INC_STATS_BH
(
idev
,
IPSTATS_MIB_INDISCARDS
);
rcu_read_unlock
();
goto
out
;
...
...
net/ipv6/ip6_output.c
浏览文件 @
778d80be
...
...
@@ -173,6 +173,13 @@ static inline int ip6_skb_dst_mtu(struct sk_buff *skb)
int
ip6_output
(
struct
sk_buff
*
skb
)
{
struct
inet6_dev
*
idev
=
ip6_dst_idev
(
skb
->
dst
);
if
(
unlikely
(
idev
->
cnf
.
disable_ipv6
))
{
IP6_INC_STATS
(
idev
,
IPSTATS_MIB_OUTDISCARDS
);
kfree_skb
(
skb
);
return
0
;
}
if
((
skb
->
len
>
ip6_skb_dst_mtu
(
skb
)
&&
!
skb_is_gso
(
skb
))
||
dst_allfrag
(
skb
->
dst
))
return
ip6_fragment
(
skb
,
ip6_output2
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录