Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Achou.Wang
accel-ppp
提交
aaedc70f
A
accel-ppp
项目概览
Achou.Wang
/
accel-ppp
通知
6
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
accel-ppp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
aaedc70f
编写于
8月 30, 2016
作者:
M
Michael Furmur
提交者:
Dmitry Kozlov
11月 12, 2016
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ipoe: add support for peer-to-peer client interfaces
上级
938d3e85
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
47 addition
and
2 deletion
+47
-2
accel-pppd/ctrl/ipoe/ipoe.c
accel-pppd/ctrl/ipoe/ipoe.c
+13
-2
accel-pppd/libnetlink/iputils.c
accel-pppd/libnetlink/iputils.c
+33
-0
accel-pppd/libnetlink/iputils.h
accel-pppd/libnetlink/iputils.h
+1
-0
未找到文件。
accel-pppd/ctrl/ipoe/ipoe.c
浏览文件 @
aaedc70f
...
...
@@ -156,6 +156,7 @@ static int conf_proto;
static
LIST_HEAD
(
conf_offer_delay
);
static
const
char
*
conf_vlan_name
;
static
int
conf_ip_unnumbered
;
static
int
conf_ip_unnumbered_peer_mode
;
static
int
conf_check_mac_change
;
static
int
conf_soft_terminate
;
static
int
conf_calling_sid
=
SID_MAC
;
...
...
@@ -888,11 +889,15 @@ static void __ipoe_session_activate(struct ipoe_session *ses)
if
(
ses
->
ifindex
==
-
1
)
{
if
(
serv
->
opt_ifcfg
)
ipaddr_add
(
serv
->
ifindex
,
ses
->
router
,
conf_ip_unnumbered
?
32
:
ses
->
mask
);
if
(
conf_ip_unnumbered
&&
conf_ip_unnumbered_peer_mode
)
{
ipaddr_add_peer
(
serv
->
ifindex
,
ses
->
router
,
32
,
ses
->
yiaddr
);
}
else
{
ipaddr_add
(
serv
->
ifindex
,
ses
->
router
,
conf_ip_unnumbered
?
32
:
ses
->
mask
);
}
else
if
(
!
conf_ip_unnumbered
)
iproute_add
(
serv
->
ifindex
,
ses
->
router
,
ses
->
yiaddr
,
0
,
conf_proto
,
ses
->
mask
);
if
(
conf_ip_unnumbered
)
if
(
conf_ip_unnumbered
&&
!
conf_ip_unnumbered_peer_mode
)
iproute_add
(
serv
->
ifindex
,
serv
->
opt_src
?:
ses
->
router
,
ses
->
yiaddr
,
0
,
conf_proto
,
32
);
}
else
ses
->
ctrl
.
dont_ifcfg
=
0
;
...
...
@@ -3478,6 +3483,12 @@ static void load_config(void)
else
conf_ip_unnumbered
=
1
;
opt
=
conf_get_opt
(
"ipoe"
,
"ip-unnumbered-peer-mode"
);
if
(
opt
)
conf_ip_unnumbered_peer_mode
=
atoi
(
opt
);
else
conf_ip_unnumbered_peer_mode
=
0
;
opt
=
conf_get_opt
(
"ipoe"
,
"idle-timeout"
);
if
(
opt
)
conf_idle_timeout
=
atoi
(
opt
);
...
...
accel-pppd/libnetlink/iputils.c
浏览文件 @
aaedc70f
...
...
@@ -329,6 +329,39 @@ int __export ipaddr_add(int ifindex, in_addr_t addr, int mask)
return
r
;
}
int
__export
ipaddr_add_peer
(
int
ifindex
,
in_addr_t
addr
,
int
mask
,
in_addr_t
peer_addr
)
{
struct
ipaddr_req
{
struct
nlmsghdr
n
;
struct
ifaddrmsg
i
;
char
buf
[
4096
];
}
req
;
struct
rtnl_handle
*
rth
=
net
->
rtnl_get
();
int
r
=
0
;
if
(
!
rth
)
return
-
1
;
memset
(
&
req
,
0
,
sizeof
(
req
)
-
4096
);
req
.
n
.
nlmsg_len
=
NLMSG_LENGTH
(
sizeof
(
struct
ifaddrmsg
));
req
.
n
.
nlmsg_flags
=
NLM_F_REQUEST
|
NLM_F_CREATE
;
req
.
n
.
nlmsg_type
=
RTM_NEWADDR
;
req
.
i
.
ifa_family
=
AF_INET
;
req
.
i
.
ifa_index
=
ifindex
;
req
.
i
.
ifa_prefixlen
=
mask
;
addattr32
(
&
req
.
n
,
sizeof
(
req
),
IFA_LOCAL
,
addr
);
addattr32
(
&
req
.
n
,
sizeof
(
req
),
IFA_ADDRESS
,
peer_addr
);
if
(
rtnl_talk
(
rth
,
&
req
.
n
,
0
,
0
,
NULL
,
NULL
,
NULL
,
0
)
<
0
)
r
=
-
1
;
net
->
rtnl_put
(
rth
);
return
r
;
}
int
__export
ipaddr_del
(
int
ifindex
,
in_addr_t
addr
,
int
mask
)
{
struct
ipaddr_req
{
...
...
accel-pppd/libnetlink/iputils.h
浏览文件 @
aaedc70f
...
...
@@ -13,6 +13,7 @@ int iplink_vlan_del(int ifindex);
int
iplink_vlan_get_vid
(
int
ifindex
,
int
*
iflink
);
int
ipaddr_add
(
int
ifindex
,
in_addr_t
addr
,
int
mask
);
int
ipaddr_add_peer
(
int
ifindex
,
in_addr_t
addr
,
int
mask
,
in_addr_t
peer_addr
);
int
ipaddr_del
(
int
ifindex
,
in_addr_t
addr
,
int
mask
);
int
iproute_add
(
int
ifindex
,
in_addr_t
src
,
in_addr_t
dst
,
in_addr_t
gw
,
int
proto
,
int
mask
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录