Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
94b92b88
Commit
94b92b88
authored
Mar 31, 2011
by
David S. Miller
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ipv4: Use flowi4_init_output() in net/route.h
Signed-off-by:
David S. Miller
<
davem@davemloft.net
>
parent
83229aa5
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
36 deletions
+24
-36
include/net/route.h
include/net/route.h
+24
-36
No files found.
include/net/route.h
View file @
94b92b88
...
...
@@ -149,17 +149,12 @@ static inline struct rtable *ip_route_output_ports(struct net *net, struct sock
__be16
dport
,
__be16
sport
,
__u8
proto
,
__u8
tos
,
int
oif
)
{
struct
flowi4
fl4
=
{
.
flowi4_oif
=
oif
,
.
flowi4_flags
=
sk
?
inet_sk_flowi_flags
(
sk
)
:
0
,
.
flowi4_mark
=
sk
?
sk
->
sk_mark
:
0
,
.
daddr
=
daddr
,
.
saddr
=
saddr
,
.
flowi4_tos
=
tos
,
.
flowi4_proto
=
proto
,
.
fl4_dport
=
dport
,
.
fl4_sport
=
sport
,
};
struct
flowi4
fl4
;
flowi4_init_output
(
&
fl4
,
oif
,
sk
?
sk
->
sk_mark
:
0
,
tos
,
RT_SCOPE_UNIVERSE
,
proto
,
sk
?
inet_sk_flowi_flags
(
sk
)
:
0
,
daddr
,
saddr
,
dport
,
sport
);
if
(
sk
)
security_sk_classify_flow
(
sk
,
flowi4_to_flowi
(
&
fl4
));
return
ip_route_output_flow
(
net
,
&
fl4
,
sk
);
...
...
@@ -229,25 +224,21 @@ static inline struct rtable *ip_route_connect(__be32 dst, __be32 src, u32 tos,
__be16
sport
,
__be16
dport
,
struct
sock
*
sk
,
bool
can_sleep
)
{
struct
flowi4
fl4
=
{
.
flowi4_oif
=
oif
,
.
flowi4_mark
=
sk
->
sk_mark
,
.
daddr
=
dst
,
.
saddr
=
src
,
.
flowi4_tos
=
tos
,
.
flowi4_proto
=
protocol
,
.
fl4_sport
=
sport
,
.
fl4_dport
=
dport
,
};
struct
net
*
net
=
sock_net
(
sk
);
struct
rtable
*
rt
;
struct
flowi4
fl4
;
__u8
flow_flags
;
flow_flags
=
0
;
if
(
inet_sk
(
sk
)
->
transparent
)
fl
4
.
flowi4
_flags
|=
FLOWI_FLAG_ANYSRC
;
fl
ow
_flags
|=
FLOWI_FLAG_ANYSRC
;
if
(
protocol
==
IPPROTO_TCP
)
fl
4
.
flowi4
_flags
|=
FLOWI_FLAG_PRECOW_METRICS
;
fl
ow
_flags
|=
FLOWI_FLAG_PRECOW_METRICS
;
if
(
can_sleep
)
fl4
.
flowi4_flags
|=
FLOWI_FLAG_CAN_SLEEP
;
flow_flags
|=
FLOWI_FLAG_CAN_SLEEP
;
flowi4_init_output
(
&
fl4
,
oif
,
sk
->
sk_mark
,
tos
,
RT_SCOPE_UNIVERSE
,
protocol
,
flow_flags
,
dst
,
src
,
dport
,
sport
);
if
(
!
dst
||
!
src
)
{
rt
=
__ip_route_output_key
(
net
,
&
fl4
);
...
...
@@ -267,20 +258,17 @@ static inline struct rtable *ip_route_newports(struct rtable *rt,
__be16
dport
,
struct
sock
*
sk
)
{
if
(
sport
!=
orig_sport
||
dport
!=
orig_dport
)
{
struct
flowi4
fl4
=
{
.
flowi4_oif
=
rt
->
rt_oif
,
.
flowi4_mark
=
rt
->
rt_mark
,
.
daddr
=
rt
->
rt_dst
,
.
saddr
=
rt
->
rt_src
,
.
flowi4_tos
=
rt
->
rt_tos
,
.
flowi4_proto
=
protocol
,
.
fl4_sport
=
sport
,
.
fl4_dport
=
dport
};
struct
flowi4
fl4
;
__u8
flow_flags
;
flow_flags
=
0
;
if
(
inet_sk
(
sk
)
->
transparent
)
fl
4
.
flowi4
_flags
|=
FLOWI_FLAG_ANYSRC
;
fl
ow
_flags
|=
FLOWI_FLAG_ANYSRC
;
if
(
protocol
==
IPPROTO_TCP
)
fl4
.
flowi4_flags
|=
FLOWI_FLAG_PRECOW_METRICS
;
flow_flags
|=
FLOWI_FLAG_PRECOW_METRICS
;
flowi4_init_output
(
&
fl4
,
rt
->
rt_oif
,
rt
->
rt_mark
,
rt
->
rt_tos
,
RT_SCOPE_UNIVERSE
,
protocol
,
flow_flags
,
rt
->
rt_dst
,
rt
->
rt_src
,
dport
,
sport
);
ip_rt_put
(
rt
);
security_sk_classify_flow
(
sk
,
flowi4_to_flowi
(
&
fl4
));
return
ip_route_output_flow
(
sock_net
(
sk
),
&
fl4
,
sk
);
...
...
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