aboutsummaryrefslogtreecommitdiff
path: root/networking/libiproute/iproute.c
diff options
context:
space:
mode:
authorCurt Brune <curt@cumulusnetworks.com>2015-10-14 12:53:47 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2015-10-14 12:53:47 +0200
commit69934701fd1b18327b3a779cb292a728834b2d0d (patch)
treecdae967517ee981a7e7f07bddfec7047c1f51221 /networking/libiproute/iproute.c
parent7b85ec30b5941f0b90c48a990f2f6840aca87bce (diff)
downloadbusybox-69934701fd1b18327b3a779cb292a728834b2d0d.tar.gz
networking: add 'ip neigh' command
This patch ports the 'ip neigh' command, originally written by Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>, to busybox. The base of the port is the version of iproute that shipped with Debian Squeeze, taken from: http://http.debian.net/debian/pool/main/i/iproute/iproute_20100519.orig.tar.gz This patch has actively been used by the Open Network Install Environment (ONIE) project for over 3 years without incident. function old new delta print_neigh - 933 +933 ipneigh_list_or_flush - 742 +742 get_hz - 109 +109 do_ipneigh - 62 +62 do_iproute 2112 2153 +41 packed_usage 30647 30667 +20 ipneigh_main - 14 +14 static.ip_neigh_commands - 12 +12 static.nuds - 9 +9 static.ip_func_ptrs 32 36 +4 print_route 1858 1727 -131 ------------------------------------------------------------------------------ (add/remove: 8/0 grow/shrink: 3/1 up/down: 1946/-131) Total: 1815 bytes Signed-off-by: Curt Brune <curt@cumulusnetworks.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'networking/libiproute/iproute.c')
-rw-r--r--networking/libiproute/iproute.c26
1 files changed, 2 insertions, 24 deletions
diff --git a/networking/libiproute/iproute.c b/networking/libiproute/iproute.c
index 6ecd5f719..f7209b126 100644
--- a/networking/libiproute/iproute.c
+++ b/networking/libiproute/iproute.c
@@ -55,28 +55,6 @@ static int flush_update(void)
return 0;
}
-static unsigned get_hz(void)
-{
- static unsigned hz_internal;
- FILE *fp;
-
- if (hz_internal)
- return hz_internal;
-
- fp = fopen_for_read("/proc/net/psched");
- if (fp) {
- unsigned nom, denom;
-
- if (fscanf(fp, "%*08x%*08x%08x%08x", &nom, &denom) == 2)
- if (nom == 1000000)
- hz_internal = denom;
- fclose(fp);
- }
- if (!hz_internal)
- hz_internal = bb_clk_tck();
- return hz_internal;
-}
-
static int FAST_FUNC print_route(const struct sockaddr_nl *who UNUSED_PARAM,
struct nlmsghdr *n, void *arg UNUSED_PARAM)
{
@@ -217,7 +195,7 @@ static int FAST_FUNC print_route(const struct sockaddr_nl *who UNUSED_PARAM,
if (NLMSG_ALIGN(G_filter.flushp) + n->nlmsg_len > G_filter.flushe) {
if (flush_update())
- bb_error_msg_and_die("flush");
+ xfunc_die();
}
fn = (void*)(G_filter.flushb + NLMSG_ALIGN(G_filter.flushp));
memcpy(fn, n, n->nlmsg_len);
@@ -954,7 +932,7 @@ int FAST_FUNC do_iproute(char **argv)
case 11: /* flush */
return iproute_list_or_flush(argv+1, 1);
default:
- bb_error_msg_and_die("unknown command %s", *argv);
+ invarg(*argv, applet_name);
}
return iproute_modify(cmd, flags, argv+1);