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
Kirill Smelkov
linux
Commits
5170ae82
Commit
5170ae82
authored
Dec 12, 2010
by
David S. Miller
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
net: Abstract RTAX_HOPLIMIT metric accesses behind helper.
Signed-off-by:
David S. Miller
<
davem@davemloft.net
>
parent
abbf46ae
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
22 additions
and
9 deletions
+22
-9
drivers/net/pptp.c
drivers/net/pptp.c
+1
-1
include/net/dst.h
include/net/dst.h
+14
-1
net/ipv4/ip_gre.c
net/ipv4/ip_gre.c
+1
-1
net/ipv4/ip_output.c
net/ipv4/ip_output.c
+1
-1
net/ipv4/netfilter/ipt_REJECT.c
net/ipv4/netfilter/ipt_REJECT.c
+1
-1
net/ipv4/route.c
net/ipv4/route.c
+1
-1
net/ipv4/xfrm4_mode_tunnel.c
net/ipv4/xfrm4_mode_tunnel.c
+1
-1
net/ipv6/route.c
net/ipv6/route.c
+2
-2
No files found.
drivers/net/pptp.c
View file @
5170ae82
...
@@ -277,7 +277,7 @@ static int pptp_xmit(struct ppp_channel *chan, struct sk_buff *skb)
...
@@ -277,7 +277,7 @@ static int pptp_xmit(struct ppp_channel *chan, struct sk_buff *skb)
iph
->
tos
=
0
;
iph
->
tos
=
0
;
iph
->
daddr
=
rt
->
rt_dst
;
iph
->
daddr
=
rt
->
rt_dst
;
iph
->
saddr
=
rt
->
rt_src
;
iph
->
saddr
=
rt
->
rt_src
;
iph
->
ttl
=
dst_metric
(
&
rt
->
dst
,
RTAX_HOPLIMIT
);
iph
->
ttl
=
dst_metric
_hoplimit
(
&
rt
->
dst
);
iph
->
tot_len
=
htons
(
skb
->
len
);
iph
->
tot_len
=
htons
(
skb
->
len
);
skb_dst_drop
(
skb
);
skb_dst_drop
(
skb
);
...
...
include/net/dst.h
View file @
5170ae82
...
@@ -104,11 +104,24 @@ struct dst_entry {
...
@@ -104,11 +104,24 @@ struct dst_entry {
#ifdef __KERNEL__
#ifdef __KERNEL__
static
inline
u32
static
inline
u32
dst_metric
(
const
struct
dst_entry
*
dst
,
int
metric
)
dst_metric
_raw
(
const
struct
dst_entry
*
dst
,
const
int
metric
)
{
{
return
dst
->
_metrics
[
metric
-
1
];
return
dst
->
_metrics
[
metric
-
1
];
}
}
static
inline
u32
dst_metric
(
const
struct
dst_entry
*
dst
,
const
int
metric
)
{
WARN_ON_ONCE
(
metric
==
RTAX_HOPLIMIT
);
return
dst_metric_raw
(
dst
,
metric
);
}
static
inline
u32
dst_metric_hoplimit
(
const
struct
dst_entry
*
dst
)
{
return
dst_metric_raw
(
dst
,
RTAX_HOPLIMIT
);
}
static
inline
void
dst_metric_set
(
struct
dst_entry
*
dst
,
int
metric
,
u32
val
)
static
inline
void
dst_metric_set
(
struct
dst_entry
*
dst
,
int
metric
,
u32
val
)
{
{
dst
->
_metrics
[
metric
-
1
]
=
val
;
dst
->
_metrics
[
metric
-
1
]
=
val
;
...
...
net/ipv4/ip_gre.c
View file @
5170ae82
...
@@ -890,7 +890,7 @@ static netdev_tx_t ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev
...
@@ -890,7 +890,7 @@ static netdev_tx_t ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev
iph
->
ttl
=
((
struct
ipv6hdr
*
)
old_iph
)
->
hop_limit
;
iph
->
ttl
=
((
struct
ipv6hdr
*
)
old_iph
)
->
hop_limit
;
#endif
#endif
else
else
iph
->
ttl
=
dst_metric
(
&
rt
->
dst
,
RTAX_HOPLIMIT
);
iph
->
ttl
=
dst_metric
_hoplimit
(
&
rt
->
dst
);
}
}
((
__be16
*
)(
iph
+
1
))[
0
]
=
tunnel
->
parms
.
o_flags
;
((
__be16
*
)(
iph
+
1
))[
0
]
=
tunnel
->
parms
.
o_flags
;
...
...
net/ipv4/ip_output.c
View file @
5170ae82
...
@@ -130,7 +130,7 @@ static inline int ip_select_ttl(struct inet_sock *inet, struct dst_entry *dst)
...
@@ -130,7 +130,7 @@ static inline int ip_select_ttl(struct inet_sock *inet, struct dst_entry *dst)
int
ttl
=
inet
->
uc_ttl
;
int
ttl
=
inet
->
uc_ttl
;
if
(
ttl
<
0
)
if
(
ttl
<
0
)
ttl
=
dst_metric
(
dst
,
RTAX_HOPLIMIT
);
ttl
=
dst_metric
_hoplimit
(
dst
);
return
ttl
;
return
ttl
;
}
}
...
...
net/ipv4/netfilter/ipt_REJECT.c
View file @
5170ae82
...
@@ -116,7 +116,7 @@ static void send_reset(struct sk_buff *oldskb, int hook)
...
@@ -116,7 +116,7 @@ static void send_reset(struct sk_buff *oldskb, int hook)
if
(
ip_route_me_harder
(
nskb
,
addr_type
))
if
(
ip_route_me_harder
(
nskb
,
addr_type
))
goto
free_nskb
;
goto
free_nskb
;
niph
->
ttl
=
dst_metric
(
skb_dst
(
nskb
),
RTAX_HOPLIMIT
);
niph
->
ttl
=
dst_metric
_hoplimit
(
skb_dst
(
nskb
)
);
/* "Never happens" */
/* "Never happens" */
if
(
nskb
->
len
>
dst_mtu
(
skb_dst
(
nskb
)))
if
(
nskb
->
len
>
dst_mtu
(
skb_dst
(
nskb
)))
...
...
net/ipv4/route.c
View file @
5170ae82
...
@@ -1821,7 +1821,7 @@ static void rt_set_nexthop(struct rtable *rt, struct fib_result *res, u32 itag)
...
@@ -1821,7 +1821,7 @@ static void rt_set_nexthop(struct rtable *rt, struct fib_result *res, u32 itag)
}
else
}
else
dst_metric_set
(
dst
,
RTAX_MTU
,
dst
->
dev
->
mtu
);
dst_metric_set
(
dst
,
RTAX_MTU
,
dst
->
dev
->
mtu
);
if
(
dst_metric
(
dst
,
RTAX_HOPLIMIT
)
==
0
)
if
(
dst_metric
_raw
(
dst
,
RTAX_HOPLIMIT
)
==
0
)
dst_metric_set
(
dst
,
RTAX_HOPLIMIT
,
sysctl_ip_default_ttl
);
dst_metric_set
(
dst
,
RTAX_HOPLIMIT
,
sysctl_ip_default_ttl
);
if
(
dst_mtu
(
dst
)
>
IP_MAX_MTU
)
if
(
dst_mtu
(
dst
)
>
IP_MAX_MTU
)
dst_metric_set
(
dst
,
RTAX_MTU
,
IP_MAX_MTU
);
dst_metric_set
(
dst
,
RTAX_MTU
,
IP_MAX_MTU
);
...
...
net/ipv4/xfrm4_mode_tunnel.c
View file @
5170ae82
...
@@ -56,7 +56,7 @@ static int xfrm4_mode_tunnel_output(struct xfrm_state *x, struct sk_buff *skb)
...
@@ -56,7 +56,7 @@ static int xfrm4_mode_tunnel_output(struct xfrm_state *x, struct sk_buff *skb)
0
:
(
XFRM_MODE_SKB_CB
(
skb
)
->
frag_off
&
htons
(
IP_DF
));
0
:
(
XFRM_MODE_SKB_CB
(
skb
)
->
frag_off
&
htons
(
IP_DF
));
ip_select_ident
(
top_iph
,
dst
->
child
,
NULL
);
ip_select_ident
(
top_iph
,
dst
->
child
,
NULL
);
top_iph
->
ttl
=
dst_metric
(
dst
->
child
,
RTAX_HOPLIMIT
);
top_iph
->
ttl
=
dst_metric
_hoplimit
(
dst
->
child
);
top_iph
->
saddr
=
x
->
props
.
saddr
.
a4
;
top_iph
->
saddr
=
x
->
props
.
saddr
.
a4
;
top_iph
->
daddr
=
x
->
id
.
daddr
.
a4
;
top_iph
->
daddr
=
x
->
id
.
daddr
.
a4
;
...
...
net/ipv6/route.c
View file @
5170ae82
...
@@ -1104,7 +1104,7 @@ static int ipv6_get_mtu(struct net_device *dev)
...
@@ -1104,7 +1104,7 @@ static int ipv6_get_mtu(struct net_device *dev)
int
ip6_dst_hoplimit
(
struct
dst_entry
*
dst
)
int
ip6_dst_hoplimit
(
struct
dst_entry
*
dst
)
{
{
int
hoplimit
=
dst_metric
(
dst
,
RTAX_HOPLIMIT
);
int
hoplimit
=
dst_metric
_raw
(
dst
,
RTAX_HOPLIMIT
);
if
(
hoplimit
<
0
)
{
if
(
hoplimit
<
0
)
{
struct
net_device
*
dev
=
dst
->
dev
;
struct
net_device
*
dev
=
dst
->
dev
;
struct
inet6_dev
*
idev
;
struct
inet6_dev
*
idev
;
...
@@ -1310,7 +1310,7 @@ int ip6_route_add(struct fib6_config *cfg)
...
@@ -1310,7 +1310,7 @@ int ip6_route_add(struct fib6_config *cfg)
}
}
}
}
if
(
dst_metric
(
&
rt
->
dst
,
RTAX_HOPLIMIT
)
==
0
)
if
(
dst_metric
_raw
(
&
rt
->
dst
,
RTAX_HOPLIMIT
)
==
0
)
dst_metric_set
(
&
rt
->
dst
,
RTAX_HOPLIMIT
,
-
1
);
dst_metric_set
(
&
rt
->
dst
,
RTAX_HOPLIMIT
,
-
1
);
if
(
!
dst_mtu
(
&
rt
->
dst
))
if
(
!
dst_mtu
(
&
rt
->
dst
))
dst_metric_set
(
&
rt
->
dst
,
RTAX_MTU
,
ipv6_get_mtu
(
dev
));
dst_metric_set
(
&
rt
->
dst
,
RTAX_MTU
,
ipv6_get_mtu
(
dev
));
...
...
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