29 Jan, 2008
40 commits
-
Some of ctl variables are going to be on the struct
net. Here's the way to adjust the ->data pointer on the
ctl_table-s to point on the right variable.Since some pointers still point on the global variables,
I keep turning the write bits off on such tables.This looks to become a common procedure for net sysctls,
so later parts of this code may migrate to some more
generic place.Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
Making them per-namespace is required for the following
two reasons:First, some ctl values have a per-namespace meaning.
Second, making them writable from the sub-namespace
is an isolation hole.So I introduce the pernet operations to create these
tables. For init_net I use the existing statically
declared tables, for sub-namespace they are duplicated
and the write bits are removed from the mode.Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
The SNMP_INC_STATS_OFFSET_BH is used only by ICMP6_INC_STATS_OFFSET_BH.
The ICMP6_INC_STATS_OFFSET_BH is unused.Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
these three list_head are all local variables, but can also use
LIST_HEAD.Signed-off-by: Denis Cheng
Signed-off-by: David S. Miller -
single list_head variable initialized with LIST_HEAD_INIT could almost
always can be replaced with LIST_HEAD declaration, this shrinks the code
and looks better.Signed-off-by: Denis Cheng
Signed-off-by: David S. Miller -
single list_head variable initialized with LIST_HEAD_INIT could almost
always can be replaced with LIST_HEAD declaration, this shrinks the code
and looks better.Signed-off-by: Denis Cheng
Signed-off-by: David S. Miller -
single list_head variable initialized with LIST_HEAD_INIT could almost
always can be replaced with LIST_HEAD declaration, this shrinks the code
and looks better.Signed-off-by: Denis Cheng
Signed-off-by: David S. Miller -
single list_head variable initialized with LIST_HEAD_INIT could almost
always can be replaced with LIST_HEAD declaration, this shrinks the code
and looks better.Signed-off-by: Denis Cheng
Signed-off-by: David S. Miller -
single list_head variable initialized with LIST_HEAD_INIT could almost
always can be replaced with LIST_HEAD declaration, this shrinks the code
and looks better.Signed-off-by: Denis Cheng
Signed-off-by: David S. Miller -
We only use these variables when displaying the trie in proc so
place them into the iterator to make this explicit. We should
probably do something smarter to handle the CONFIG_IP_MULTIPLE_TABLES
case but at least this makes it clear that the silliness is limited
to the display in /proc.Signed-off-by: Eric W. Biederman
Signed-off-by: Denis V. Lunev
Signed-off-by: David S. Miller -
There are only 2 users and it doesn't hurt to call fib_get_table
instead, and it makes it easier to make the fib network namespace
aware.Signed-off-by: Eric W. Biederman
Signed-off-by: Denis V. Lunev
Signed-off-by: David S. Miller -
If the kmem_cache_creation fails, the kernel will panic. It is
acceptable if the system is booting, but if the ipv6 protocol is
compiled as a module and it is loaded after the system has booted, do
we want to panic instead of just failing to initialize the protocol ?The init function is now returning an error and this one is checked
for protocol initialization. So the ipv6 protocol will safely fails.Signed-off-by: Daniel Lezcano
Acked-by: Benjamin Thery
Signed-off-by: David S. Miller -
The af_inet6 initialization function does not check the return code of
the route initilization, so if something goes wrong, the protocol
initialization will continue anyway. This patch takes into account
the modification made in the different route's initialization
subroutines to check the return value and to make the protocol
initialization to fail.Signed-off-by: Daniel Lezcano
Acked-by: Benjamin Thery
Signed-off-by: David S. Miller -
The route initialization function does not return any value to notify
if the initialization is successful or not. This patch checks all
calls made for the initilization in order to return a value for the
caller.Unfortunately, proc_net_fops_create will return a NULL pointer if
CONFIG_PROC_FS is off, so we can not check the return code without an
ifdef CONFIG_PROC_FS block in the ip6_route_init function.Signed-off-by: Daniel Lezcano
Acked-by: Benjamin Thery
Signed-off-by: David S. Miller -
When the fib_rules initialization finished, no return code is provided
so there is no way to know, for the caller, if the initialization has
been successful or has failed. This patch fix that.Signed-off-by: Daniel Lezcano
Acked-by: Benjamin Thery
Signed-off-by: David S. Miller -
The xfrm initialization function does not return any error code, so if
there is an error, the caller can not be advise of that. This patch
checks the return code of the different called functions in order to
return a successful or failed initialization.Signed-off-by: Daniel Lezcano
Acked-by: Benjamin Thery
Signed-off-by: David S. Miller -
If there is an error in the initialization function, nothing is
followed up to the caller. So I add a return value to be set for the
init function.Signed-off-by: Daniel Lezcano
Acked-by: Benjamin Thery
Signed-off-by: David S. Miller -
Move dst entries to a namespace loopback to catch refcounting leaks.
Signed-off-by: Denis V. Lunev
Signed-off-by: David S. Miller -
Credit here goes to Gerrit Renker, that provided the initial implementation for
this new codebase.I modified it just to try to make it closer to the existing API, renaming some
functions, add namespacing and fix one bug where the tfrc_rx_hist_alloc was not
freeing the allocated ring entries on the error path.Original changeset comment from Gerrit:
-----------
This provides a new, self-contained and generic RX history service for TFRC
based protocols.Details:
* new data structure, initialisation and cleanup routines;
* allocation of dccp_rx_hist entries local to packet_history.c,
as a service exported by the dccp_tfrc_lib module.
* interface to automatically track highest-received seqno;
* receiver-based RTT estimation (needed for instance by RFC 3448, 6.3.1);
* a generic function to test for `data packets' as per RFC 4340, sec. 7.7.Signed-off-by: Gerrit Renker
Signed-off-by: Arnaldo Carvalho de Melo
Signed-off-by: David S. Miller -
Only the sender sets window counters [RFC 4342, sections 5 and 8.1].
Signed-off-by: Gerrit Renker
Signed-off-by: Ian McDonald
Signed-off-by: Arnaldo Carvalho de Melo
Signed-off-by: David S. Miller -
This is in preparation for merging the new rx history code written by Gerrit Renker.
Signed-off-by: Gerrit Renker
Signed-off-by: Arnaldo Carvalho de Melo
Signed-off-by: David S. Miller -
This is in preparation for merging the new rx history code written by Gerrit Renker.
Signed-off-by: Gerrit Renker
Signed-off-by: Arnaldo Carvalho de Melo
Signed-off-by: David S. Miller -
Signed-off-by: Gerrit Renker
Signed-off-by: Arnaldo Carvalho de Melo
Signed-off-by: David S. Miller -
as per RFC 4340, sec. 7.7.
Signed-off-by: Gerrit Renker
Signed-off-by: Ian McDonald
Signed-off-by: Arnaldo Carvalho de Melo
Signed-off-by: David S. Miller -
This patch changes the tfrc_lib module in the following manner:
(1) a dedicated tfrc source file to call the packet history &
loss interval init/exit functions.
(2) a dedicated tfrc_pr_debug macro with toggle switch `tfrc_debug'.Commiter note: renamed tfrc_module.c to tfrc.c, and made CONFIG_IP_DCCP_CCID3
select IP_DCCP_TFRC_LIB.Signed-off-by: Gerrit Renker
Signed-off-by: Ian McDonald
Signed-off-by: Arnaldo Carvalho de Melo
Signed-off-by: David S. Miller -
The PROXY_ARP is set on devconfigs in a similar way in
both calls.Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
The same cleanup for deletion requests.
Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
The ATF_PUBL requests are handled completely separate from
the others. Emphasize it with a separate function. This also
reduces the indentation level.The same issue exists with the arp_delete_request, but
when I tried to make it in one patch diff produced completely
unreadable patch. So I split it into two, but they may be
done with one commit.Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
There's no need in having this function exist in a form
of macro. Properly formatted function looks much better.Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
The rt_cache, stats/rt_cache and rt_acct(optional) files
creation looks a bit messy. Clean this out and join them
to other proc-related functions under the proper ifdef.The struct net * argument in a new function will help net
namespaces patches look nicer.Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
The net/ipv4/route.c file declares some entries for proc
to dump some routing info. The reading functions are
scattered over this file - collect them together.Besides, remove a useless IP_RT_ACCT_CPU macro.
Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
Signed-off-by: Patrick McHardy
Signed-off-by: David S. Miller -
The previous move of the the UDP inDatagrams counter caused each
peek of the same packet to be counted separately. This may be
undesirable.This patch fixes this by adding a bit to sk_buff to record whether
this packet has already been seen through skb_recv_datagram. We
then only increment the counter when the packet is seen for the
first time.The only dodgy part is the fact that skb_recv_datagram doesn't have
a good way of returning this new bit of information. So I've added
a new function __skb_recv_datagram that does return this and made
skb_recv_datagram a wrapper around it.The plan is to eventually replace all uses of skb_recv_datagram with
this new function at which time it can be renamed its proper name.Signed-off-by: Herbert Xu
Signed-off-by: David S. Miller -
The previous move of the the UDP inDatagrams counter caused the
counting of encapsulated packets, SUNRPC data (as opposed to call)
packets and RXRPC packets to go missing.This patch restores all of these.
Signed-off-by: Herbert Xu
Signed-off-by: David S. Miller -
Currently it is possible for two processes to peek on the same socket
and end up incrementing the error counter twice for the same packet.This patch fixes it by making skb_kill_datagram return whether it
succeeded in unlinking the packet and only incrementing the counter
if it did.Signed-off-by: Herbert Xu
Signed-off-by: David S. Miller -
The only difference in this case is that updating all.forwarding
causes the update in default.forwarding when done via proc, but
not via the system call.Besides, this consolidates a good portion of code.
Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
AFAIS these two entries should do the same thing - change the
forwarding state on ipv4_devconf and on all the devices.I propose to merge the handlers together using ctl paths.
The inet_forward_change() is static after this and I move
it higher to be closer to other "propagation" helpers and
to avoid diff making patches based on { and } matching :)
i.e. - make them easier to read.Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
I have already done this for core, ipv4 and tr tables, so repeat this
for the ipv6 ones.This makes the ipv6.ko smaller and creates the ground needed for net
namespaces support in ipv6.ko ssctls.Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
Since this file is entirely enclosed with the
#ifdef CONFIG_SYSCTL/#endif pair, it's OK to move this
CONFIG_ into a Makefile.Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
I have removed all the entries from this table (core_table,
ipv4_table and tr_table), so now we can safely drop it.Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller