Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
L
lxc
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
lxc
Commits
8d539bc9
Unverified
Commit
8d539bc9
authored
Apr 30, 2019
by
Christian Brauner
Committed by
GitHub
Apr 30, 2019
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #2961 from tomponline/tp-static-net-funcs
network: Makes some routing functions static
parents
75614e8e
8f82874c
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
60 additions
and
65 deletions
+60
-65
network.c
src/lxc/network.c
+60
-61
network.h
src/lxc/network.h
+0
-4
No files found.
src/lxc/network.c
View file @
8d539bc9
...
@@ -69,6 +69,66 @@ lxc_log_define(network, lxc);
...
@@ -69,6 +69,66 @@ lxc_log_define(network, lxc);
typedef
int
(
*
instantiate_cb
)(
struct
lxc_handler
*
,
struct
lxc_netdev
*
);
typedef
int
(
*
instantiate_cb
)(
struct
lxc_handler
*
,
struct
lxc_netdev
*
);
static
int
lxc_ip_route_dest_add
(
int
family
,
int
ifindex
,
void
*
dest
,
unsigned
int
netmask
)
{
int
addrlen
,
err
;
struct
nl_handler
nlh
;
struct
rtmsg
*
rt
;
struct
nlmsg
*
answer
=
NULL
,
*
nlmsg
=
NULL
;
addrlen
=
family
==
AF_INET
?
sizeof
(
struct
in_addr
)
:
sizeof
(
struct
in6_addr
);
err
=
netlink_open
(
&
nlh
,
NETLINK_ROUTE
);
if
(
err
)
return
err
;
err
=
-
ENOMEM
;
nlmsg
=
nlmsg_alloc
(
NLMSG_GOOD_SIZE
);
if
(
!
nlmsg
)
goto
out
;
answer
=
nlmsg_alloc_reserve
(
NLMSG_GOOD_SIZE
);
if
(
!
answer
)
goto
out
;
nlmsg
->
nlmsghdr
->
nlmsg_flags
=
NLM_F_ACK
|
NLM_F_REQUEST
|
NLM_F_CREATE
|
NLM_F_EXCL
;
nlmsg
->
nlmsghdr
->
nlmsg_type
=
RTM_NEWROUTE
;
rt
=
nlmsg_reserve
(
nlmsg
,
sizeof
(
struct
rtmsg
));
if
(
!
rt
)
goto
out
;
rt
->
rtm_family
=
family
;
rt
->
rtm_table
=
RT_TABLE_MAIN
;
rt
->
rtm_scope
=
RT_SCOPE_LINK
;
rt
->
rtm_protocol
=
RTPROT_BOOT
;
rt
->
rtm_type
=
RTN_UNICAST
;
rt
->
rtm_dst_len
=
netmask
;
err
=
-
EINVAL
;
if
(
nla_put_buffer
(
nlmsg
,
RTA_DST
,
dest
,
addrlen
))
goto
out
;
if
(
nla_put_u32
(
nlmsg
,
RTA_OIF
,
ifindex
))
goto
out
;
err
=
netlink_transaction
(
&
nlh
,
nlmsg
,
answer
);
out:
netlink_close
(
&
nlh
);
nlmsg_free
(
answer
);
nlmsg_free
(
nlmsg
);
return
err
;
}
static
int
lxc_ipv4_dest_add
(
int
ifindex
,
struct
in_addr
*
dest
,
unsigned
int
netmask
)
{
return
lxc_ip_route_dest_add
(
AF_INET
,
ifindex
,
dest
,
netmask
);
}
static
int
lxc_ipv6_dest_add
(
int
ifindex
,
struct
in6_addr
*
dest
,
unsigned
int
netmask
)
{
return
lxc_ip_route_dest_add
(
AF_INET6
,
ifindex
,
dest
,
netmask
);
}
static
int
lxc_setup_ipv4_routes
(
struct
lxc_list
*
ip
,
int
ifindex
)
static
int
lxc_setup_ipv4_routes
(
struct
lxc_list
*
ip
,
int
ifindex
)
{
{
struct
lxc_list
*
iterator
;
struct
lxc_list
*
iterator
;
...
@@ -1830,67 +1890,6 @@ int lxc_ipv6_gateway_add(int ifindex, struct in6_addr *gw)
...
@@ -1830,67 +1890,6 @@ int lxc_ipv6_gateway_add(int ifindex, struct in6_addr *gw)
{
{
return
ip_gateway_add
(
AF_INET6
,
ifindex
,
gw
);
return
ip_gateway_add
(
AF_INET6
,
ifindex
,
gw
);
}
}
static
int
ip_route_dest_add
(
int
family
,
int
ifindex
,
void
*
dest
,
unsigned
int
netmask
)
{
int
addrlen
,
err
;
struct
nl_handler
nlh
;
struct
rtmsg
*
rt
;
struct
nlmsg
*
answer
=
NULL
,
*
nlmsg
=
NULL
;
addrlen
=
family
==
AF_INET
?
sizeof
(
struct
in_addr
)
:
sizeof
(
struct
in6_addr
);
err
=
netlink_open
(
&
nlh
,
NETLINK_ROUTE
);
if
(
err
)
return
err
;
err
=
-
ENOMEM
;
nlmsg
=
nlmsg_alloc
(
NLMSG_GOOD_SIZE
);
if
(
!
nlmsg
)
goto
out
;
answer
=
nlmsg_alloc_reserve
(
NLMSG_GOOD_SIZE
);
if
(
!
answer
)
goto
out
;
nlmsg
->
nlmsghdr
->
nlmsg_flags
=
NLM_F_ACK
|
NLM_F_REQUEST
|
NLM_F_CREATE
|
NLM_F_EXCL
;
nlmsg
->
nlmsghdr
->
nlmsg_type
=
RTM_NEWROUTE
;
rt
=
nlmsg_reserve
(
nlmsg
,
sizeof
(
struct
rtmsg
));
if
(
!
rt
)
goto
out
;
rt
->
rtm_family
=
family
;
rt
->
rtm_table
=
RT_TABLE_MAIN
;
rt
->
rtm_scope
=
RT_SCOPE_LINK
;
rt
->
rtm_protocol
=
RTPROT_BOOT
;
rt
->
rtm_type
=
RTN_UNICAST
;
rt
->
rtm_dst_len
=
netmask
;
err
=
-
EINVAL
;
if
(
nla_put_buffer
(
nlmsg
,
RTA_DST
,
dest
,
addrlen
))
goto
out
;
if
(
nla_put_u32
(
nlmsg
,
RTA_OIF
,
ifindex
))
goto
out
;
err
=
netlink_transaction
(
&
nlh
,
nlmsg
,
answer
);
out:
netlink_close
(
&
nlh
);
nlmsg_free
(
answer
);
nlmsg_free
(
nlmsg
);
return
err
;
}
int
lxc_ipv4_dest_add
(
int
ifindex
,
struct
in_addr
*
dest
,
unsigned
int
netmask
)
{
return
ip_route_dest_add
(
AF_INET
,
ifindex
,
dest
,
netmask
);
}
int
lxc_ipv6_dest_add
(
int
ifindex
,
struct
in6_addr
*
dest
,
unsigned
int
netmask
)
{
return
ip_route_dest_add
(
AF_INET6
,
ifindex
,
dest
,
netmask
);
}
bool
is_ovs_bridge
(
const
char
*
bridge
)
bool
is_ovs_bridge
(
const
char
*
bridge
)
{
{
int
ret
;
int
ret
;
...
...
src/lxc/network.h
View file @
8d539bc9
...
@@ -222,10 +222,6 @@ extern int lxc_ipv4_addr_add(int ifindex, struct in_addr *addr,
...
@@ -222,10 +222,6 @@ extern int lxc_ipv4_addr_add(int ifindex, struct in_addr *addr,
extern
int
lxc_ipv4_addr_get
(
int
ifindex
,
struct
in_addr
**
res
);
extern
int
lxc_ipv4_addr_get
(
int
ifindex
,
struct
in_addr
**
res
);
extern
int
lxc_ipv6_addr_get
(
int
ifindex
,
struct
in6_addr
**
res
);
extern
int
lxc_ipv6_addr_get
(
int
ifindex
,
struct
in6_addr
**
res
);
/* Set a destination route to an interface. */
extern
int
lxc_ipv4_dest_add
(
int
ifindex
,
struct
in_addr
*
dest
,
unsigned
int
netmask
);
extern
int
lxc_ipv6_dest_add
(
int
ifindex
,
struct
in6_addr
*
dest
,
unsigned
int
netmask
);
/* Set default route. */
/* Set default route. */
extern
int
lxc_ipv4_gateway_add
(
int
ifindex
,
struct
in_addr
*
gw
);
extern
int
lxc_ipv4_gateway_add
(
int
ifindex
,
struct
in_addr
*
gw
);
extern
int
lxc_ipv6_gateway_add
(
int
ifindex
,
struct
in6_addr
*
gw
);
extern
int
lxc_ipv6_gateway_add
(
int
ifindex
,
struct
in6_addr
*
gw
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment