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
ce7fa1b3
Commit
ce7fa1b3
authored
Dec 19, 2005
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
parents
d898d485
9bffc4ac
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
52 additions
and
33 deletions
+52
-33
include/linux/rtnetlink.h
include/linux/rtnetlink.h
+4
-0
include/net/xfrm.h
include/net/xfrm.h
+1
-0
net/bridge/br_netfilter.c
net/bridge/br_netfilter.c
+7
-10
net/ipv4/netfilter/Makefile
net/ipv4/netfilter/Makefile
+2
-1
net/ipv4/xfrm4_policy.c
net/ipv4/xfrm4_policy.c
+1
-0
net/ipv6/addrconf.c
net/ipv6/addrconf.c
+12
-4
net/ipv6/netfilter/Kconfig
net/ipv6/netfilter/Kconfig
+1
-1
net/ipv6/route.c
net/ipv6/route.c
+1
-1
net/ipv6/xfrm6_policy.c
net/ipv6/xfrm6_policy.c
+1
-0
net/sctp/socket.c
net/sctp/socket.c
+3
-11
net/xfrm/xfrm_policy.c
net/xfrm/xfrm_policy.c
+14
-5
net/xfrm/xfrm_state.c
net/xfrm/xfrm_state.c
+5
-0
No files found.
include/linux/rtnetlink.h
View file @
ce7fa1b3
...
...
@@ -866,6 +866,7 @@ enum rtnetlink_groups {
#define RTNLGRP_IPV4_MROUTE RTNLGRP_IPV4_MROUTE
RTNLGRP_IPV4_ROUTE
,
#define RTNLGRP_IPV4_ROUTE RTNLGRP_IPV4_ROUTE
RTNLGRP_NOP1
,
RTNLGRP_IPV6_IFADDR
,
#define RTNLGRP_IPV6_IFADDR RTNLGRP_IPV6_IFADDR
RTNLGRP_IPV6_MROUTE
,
...
...
@@ -876,8 +877,11 @@ enum rtnetlink_groups {
#define RTNLGRP_IPV6_IFINFO RTNLGRP_IPV6_IFINFO
RTNLGRP_DECnet_IFADDR
,
#define RTNLGRP_DECnet_IFADDR RTNLGRP_DECnet_IFADDR
RTNLGRP_NOP2
,
RTNLGRP_DECnet_ROUTE
,
#define RTNLGRP_DECnet_ROUTE RTNLGRP_DECnet_ROUTE
RTNLGRP_NOP3
,
RTNLGRP_NOP4
,
RTNLGRP_IPV6_PREFIX
,
#define RTNLGRP_IPV6_PREFIX RTNLGRP_IPV6_PREFIX
__RTNLGRP_MAX
...
...
include/net/xfrm.h
View file @
ce7fa1b3
...
...
@@ -890,6 +890,7 @@ struct xfrm_state * xfrm_find_acq(u8 mode, u32 reqid, u8 proto,
extern
void
xfrm_policy_flush
(
void
);
extern
int
xfrm_sk_policy_insert
(
struct
sock
*
sk
,
int
dir
,
struct
xfrm_policy
*
pol
);
extern
int
xfrm_flush_bundles
(
void
);
extern
void
xfrm_flush_all_bundles
(
void
);
extern
int
xfrm_bundle_ok
(
struct
xfrm_dst
*
xdst
,
struct
flowi
*
fl
,
int
family
);
extern
void
xfrm_init_pmtu
(
struct
dst_entry
*
dst
);
...
...
net/bridge/br_netfilter.c
View file @
ce7fa1b3
...
...
@@ -295,7 +295,7 @@ static int check_hbh_len(struct sk_buff *skb)
len
-=
2
;
while
(
len
>
0
)
{
int
optlen
=
raw
[
off
+
1
]
+
2
;
int
optlen
=
skb
->
nh
.
raw
[
off
+
1
]
+
2
;
switch
(
skb
->
nh
.
raw
[
off
])
{
case
IPV6_TLV_PAD0
:
...
...
@@ -308,18 +308,15 @@ static int check_hbh_len(struct sk_buff *skb)
case
IPV6_TLV_JUMBO
:
if
(
skb
->
nh
.
raw
[
off
+
1
]
!=
4
||
(
off
&
3
)
!=
2
)
goto
bad
;
pkt_len
=
ntohl
(
*
(
u32
*
)(
skb
->
nh
.
raw
+
off
+
2
));
if
(
pkt_len
<=
IPV6_MAXPLEN
||
skb
->
nh
.
ipv6h
->
payload_len
)
goto
bad
;
if
(
pkt_len
>
skb
->
len
-
sizeof
(
struct
ipv6hdr
))
goto
bad
;
if
(
pkt_len
+
sizeof
(
struct
ipv6hdr
)
<
skb
->
len
)
{
if
(
__pskb_trim
(
skb
,
pkt_len
+
sizeof
(
struct
ipv6hdr
)))
goto
bad
;
if
(
skb
->
ip_summed
==
CHECKSUM_HW
)
skb
->
ip_summed
=
CHECKSUM_NONE
;
}
if
(
pskb_trim_rcsum
(
skb
,
pkt_len
+
sizeof
(
struct
ipv6hdr
)))
goto
bad
;
break
;
default:
if
(
optlen
>
len
)
...
...
net/ipv4/netfilter/Makefile
View file @
ce7fa1b3
...
...
@@ -12,6 +12,7 @@ ip_nat_pptp-objs := ip_nat_helper_pptp.o ip_nat_proto_gre.o
# connection tracking
obj-$(CONFIG_IP_NF_CONNTRACK)
+=
ip_conntrack.o
obj-$(CONFIG_IP_NF_NAT)
+=
ip_nat.o
# conntrack netlink interface
obj-$(CONFIG_IP_NF_CONNTRACK_NETLINK)
+=
ip_conntrack_netlink.o
...
...
@@ -41,7 +42,7 @@ obj-$(CONFIG_IP_NF_IPTABLES) += ip_tables.o
# the three instances of ip_tables
obj-$(CONFIG_IP_NF_FILTER)
+=
iptable_filter.o
obj-$(CONFIG_IP_NF_MANGLE)
+=
iptable_mangle.o
obj-$(CONFIG_IP_NF_NAT)
+=
iptable_nat.o
ip_nat.o
obj-$(CONFIG_IP_NF_NAT)
+=
iptable_nat.o
obj-$(CONFIG_IP_NF_RAW)
+=
iptable_raw.o
# matches
...
...
net/ipv4/xfrm4_policy.c
View file @
ce7fa1b3
...
...
@@ -182,6 +182,7 @@ _decode_session4(struct sk_buff *skb, struct flowi *fl)
case
IPPROTO_UDP
:
case
IPPROTO_TCP
:
case
IPPROTO_SCTP
:
case
IPPROTO_DCCP
:
if
(
pskb_may_pull
(
skb
,
xprth
+
4
-
skb
->
data
))
{
u16
*
ports
=
(
u16
*
)
xprth
;
...
...
net/ipv6/addrconf.c
View file @
ce7fa1b3
...
...
@@ -1596,9 +1596,17 @@ void addrconf_prefix_rcv(struct net_device *dev, u8 *opt, int len)
not good.
*/
if
(
valid_lft
>=
0x7FFFFFFF
/
HZ
)
rt_expires
=
0
;
rt_expires
=
0
x7FFFFFFF
-
(
0x7FFFFFFF
%
HZ
)
;
else
rt_expires
=
jiffies
+
valid_lft
*
HZ
;
rt_expires
=
valid_lft
*
HZ
;
/*
* We convert this (in jiffies) to clock_t later.
* Avoid arithmetic overflow there as well.
* Overflow can happen only if HZ < USER_HZ.
*/
if
(
HZ
<
USER_HZ
&&
rt_expires
>
0x7FFFFFFF
/
USER_HZ
)
rt_expires
=
0x7FFFFFFF
/
USER_HZ
;
if
(
pinfo
->
onlink
)
{
struct
rt6_info
*
rt
;
...
...
@@ -1610,12 +1618,12 @@ void addrconf_prefix_rcv(struct net_device *dev, u8 *opt, int len)
ip6_del_rt
(
rt
,
NULL
,
NULL
,
NULL
);
rt
=
NULL
;
}
else
{
rt
->
rt6i_expires
=
rt_expires
;
rt
->
rt6i_expires
=
jiffies
+
rt_expires
;
}
}
}
else
if
(
valid_lft
)
{
addrconf_prefix_route
(
&
pinfo
->
prefix
,
pinfo
->
prefix_len
,
dev
,
rt_expires
,
RTF_ADDRCONF
|
RTF_EXPIRES
|
RTF_PREFIX_RT
);
dev
,
jiffies_to_clock_t
(
rt_expires
)
,
RTF_ADDRCONF
|
RTF_EXPIRES
|
RTF_PREFIX_RT
);
}
if
(
rt
)
dst_release
(
&
rt
->
u
.
dst
);
...
...
net/ipv6/netfilter/Kconfig
View file @
ce7fa1b3
...
...
@@ -211,7 +211,7 @@ config IP6_NF_TARGET_REJECT
config IP6_NF_TARGET_NFQUEUE
tristate "NFQUEUE Target Support"
depends on IP_NF_IPTABLES
depends on IP
6
_NF_IPTABLES
help
This Target replaced the old obsolete QUEUE target.
...
...
net/ipv6/route.c
View file @
ce7fa1b3
...
...
@@ -829,7 +829,7 @@ int ip6_route_add(struct in6_rtmsg *rtmsg, struct nlmsghdr *nlh,
}
rt
->
u
.
dst
.
obsolete
=
-
1
;
rt
->
rt6i_expires
=
clock_t_to_jiffies
(
rtmsg
->
rtmsg_info
);
rt
->
rt6i_expires
=
jiffies
+
clock_t_to_jiffies
(
rtmsg
->
rtmsg_info
);
if
(
nlh
&&
(
r
=
NLMSG_DATA
(
nlh
)))
{
rt
->
rt6i_protocol
=
r
->
rtm_protocol
;
}
else
{
...
...
net/ipv6/xfrm6_policy.c
View file @
ce7fa1b3
...
...
@@ -214,6 +214,7 @@ _decode_session6(struct sk_buff *skb, struct flowi *fl)
case
IPPROTO_UDP
:
case
IPPROTO_TCP
:
case
IPPROTO_SCTP
:
case
IPPROTO_DCCP
:
if
(
pskb_may_pull
(
skb
,
skb
->
nh
.
raw
+
offset
+
4
-
skb
->
data
))
{
u16
*
ports
=
(
u16
*
)
exthdr
;
...
...
net/sctp/socket.c
View file @
ce7fa1b3
...
...
@@ -156,10 +156,6 @@ static inline void sctp_set_owner_w(struct sctp_chunk *chunk)
sizeof
(
struct
sk_buff
)
+
sizeof
(
struct
sctp_chunk
);
sk
->
sk_wmem_queued
+=
SCTP_DATA_SNDSIZE
(
chunk
)
+
sizeof
(
struct
sk_buff
)
+
sizeof
(
struct
sctp_chunk
);
atomic_add
(
sizeof
(
struct
sctp_chunk
),
&
sk
->
sk_wmem_alloc
);
}
...
...
@@ -4426,7 +4422,7 @@ int sctp_inet_listen(struct socket *sock, int backlog)
* tcp_poll(). Note that, based on these implementations, we don't
* lock the socket in this function, even though it seems that,
* ideally, locking or some other mechanisms can be used to ensure
* the integrity of the counters (sndbuf and wmem_
queued
) used
* the integrity of the counters (sndbuf and wmem_
alloc
) used
* in this place. We assume that we don't need locks either until proven
* otherwise.
*
...
...
@@ -4833,10 +4829,6 @@ static void sctp_wfree(struct sk_buff *skb)
sizeof
(
struct
sk_buff
)
+
sizeof
(
struct
sctp_chunk
);
sk
->
sk_wmem_queued
-=
SCTP_DATA_SNDSIZE
(
chunk
)
+
sizeof
(
struct
sk_buff
)
+
sizeof
(
struct
sctp_chunk
);
atomic_sub
(
sizeof
(
struct
sctp_chunk
),
&
sk
->
sk_wmem_alloc
);
sock_wfree
(
skb
);
...
...
@@ -4920,7 +4912,7 @@ void sctp_write_space(struct sock *sk)
/* Is there any sndbuf space available on the socket?
*
* Note that
wmem_queued
is the sum of the send buffers on all of the
* Note that
sk_wmem_alloc
is the sum of the send buffers on all of the
* associations on the same socket. For a UDP-style socket with
* multiple associations, it is possible for it to be "unwriteable"
* prematurely. I assume that this is acceptable because
...
...
@@ -4933,7 +4925,7 @@ static int sctp_writeable(struct sock *sk)
{
int
amt
=
0
;
amt
=
sk
->
sk_sndbuf
-
sk
->
sk_wmem_queued
;
amt
=
sk
->
sk_sndbuf
-
atomic_read
(
&
sk
->
sk_wmem_alloc
)
;
if
(
amt
<
0
)
amt
=
0
;
return
amt
;
...
...
net/xfrm/xfrm_policy.c
View file @
ce7fa1b3
...
...
@@ -1014,13 +1014,12 @@ int __xfrm_route_forward(struct sk_buff *skb, unsigned short family)
}
EXPORT_SYMBOL
(
__xfrm_route_forward
);
/* Optimize later using cookies and generation ids. */
static
struct
dst_entry
*
xfrm_dst_check
(
struct
dst_entry
*
dst
,
u32
cookie
)
{
if
(
!
stale_bundle
(
dst
))
return
dst
;
/* If it is marked obsolete, which is how we even get here,
* then we have purged it from the policy bundle list and we
* did that for a good reason.
*/
return
NULL
;
}
...
...
@@ -1104,6 +1103,16 @@ int xfrm_flush_bundles(void)
return
0
;
}
static
int
always_true
(
struct
dst_entry
*
dst
)
{
return
1
;
}
void
xfrm_flush_all_bundles
(
void
)
{
xfrm_prune_bundles
(
always_true
);
}
void
xfrm_init_pmtu
(
struct
dst_entry
*
dst
)
{
do
{
...
...
net/xfrm/xfrm_state.c
View file @
ce7fa1b3
...
...
@@ -431,6 +431,8 @@ void xfrm_state_insert(struct xfrm_state *x)
spin_lock_bh
(
&
xfrm_state_lock
);
__xfrm_state_insert
(
x
);
spin_unlock_bh
(
&
xfrm_state_lock
);
xfrm_flush_all_bundles
();
}
EXPORT_SYMBOL
(
xfrm_state_insert
);
...
...
@@ -478,6 +480,9 @@ int xfrm_state_add(struct xfrm_state *x)
spin_unlock_bh
(
&
xfrm_state_lock
);
xfrm_state_put_afinfo
(
afinfo
);
if
(
!
err
)
xfrm_flush_all_bundles
();
if
(
x1
)
{
xfrm_state_delete
(
x1
);
xfrm_state_put
(
x1
);
...
...
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