netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Varun Chandramohan <varunc@linux.vnet.ibm.com>
To: netdev@vger.kernel.org
Cc: sri@us.ibm.com, dlstevens@us.ibm.com, varuncha@in.ibm.com
Subject: [PATCH] Age Entry For IPv4 Route Table
Date: Mon, 25 Jun 2007 10:28:38 +0530	[thread overview]
Message-ID: <20070625102838.9d1fee20.varunc@linux.vnet.ibm.com> (raw)

According to the RFC 4292 (IP Forwarding Table MIB) there is a need for an age entry for all the routes in the routing table. The entry in the RFC is inetCidrRouteAge and oid is inetCidrRouteAge.1.10.
Many snmp application require this age entry. So iam adding the age field in the routing table and providing
the interface for this value via /proc/net/route.

Signed-off-by: Varun Chandramohan <varunc@linux.vnet.ibm.com>
---
 net/ipv4/fib_hash.c   |   16 +++++++++++-----
 net/ipv4/fib_lookup.h |    1 +
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/net/ipv4/fib_hash.c b/net/ipv4/fib_hash.c
index 07e843a..2000f1e 100644
--- a/net/ipv4/fib_hash.c
+++ b/net/ipv4/fib_hash.c
@@ -448,6 +448,7 @@ static int fn_hash_insert(struct fib_tab
 			fa->fa_info = fi;
 			fa->fa_type = cfg->fc_type;
 			fa->fa_scope = cfg->fc_scope;
+			fa->fa_age = jiffies;
 			state = fa->fa_state;
 			fa->fa_state &= ~FA_S_ACCESSED;
 			fib_hash_genid++;
@@ -507,6 +508,7 @@ static int fn_hash_insert(struct fib_tab
 	new_fa->fa_type = cfg->fc_type;
 	new_fa->fa_scope = cfg->fc_scope;
 	new_fa->fa_state = 0;
+	new_fa->fa_age = jiffies;
 
 	/*
 	 * Insert new entry to the list.
@@ -998,10 +1000,11 @@ static int fib_seq_show(struct seq_file
 	struct fib_alias *fa;
 	struct fib_info *fi;
 
+#define JIFFIES_TO_SECS(jiffies)   ((jiffies)/HZ)
 	if (v == SEQ_START_TOKEN) {
 		seq_printf(seq, "%-127s\n", "Iface\tDestination\tGateway "
 			   "\tFlags\tRefCnt\tUse\tMetric\tMask\t\tMTU"
-			   "\tWindow\tIRTT");
+			   "\tWindow\tIRTT\tAge");
 		goto out;
 	}
 
@@ -1014,17 +1017,20 @@ static int fib_seq_show(struct seq_file
 	flags	= fib_flag_trans(fa->fa_type, mask, fi);
 	if (fi)
 		snprintf(bf, sizeof(bf),
-			 "%s\t%08X\t%08X\t%04X\t%d\t%u\t%d\t%08X\t%d\t%u\t%u",
+			 "%s\t%08X\t%08X\t%04X\t%d\t%u\t%d\t%08X\t%d\t%u\t%u\t%lu",
 			 fi->fib_dev ? fi->fib_dev->name : "*", prefix,
 			 fi->fib_nh->nh_gw, flags, 0, 0, fi->fib_priority,
 			 mask, (fi->fib_advmss ? fi->fib_advmss + 40 : 0),
 			 fi->fib_window,
-			 fi->fib_rtt >> 3);
+			 fi->fib_rtt >> 3,
+			 JIFFIES_TO_SECS(jiffies - fa->fa_age));	
 	else
 		snprintf(bf, sizeof(bf),
-			 "*\t%08X\t%08X\t%04X\t%d\t%u\t%d\t%08X\t%d\t%u\t%u",
-			 prefix, 0, flags, 0, 0, 0, mask, 0, 0, 0);
+			 "*\t%08X\t%08X\t%04X\t%d\t%u\t%d\t%08X\t%d\t%u\t%u\t%lu",
+			 prefix, 0, flags, 0, 0, 0, mask, 0, 0, 0, 0);
 	seq_printf(seq, "%-127s\n", bf);
+
+#undef JIFFIES_TO_SECS
 out:
 	return 0;
 }
diff --git a/net/ipv4/fib_lookup.h b/net/ipv4/fib_lookup.h
index eef9eec..cc403d4 100644
--- a/net/ipv4/fib_lookup.h
+++ b/net/ipv4/fib_lookup.h
@@ -13,6 +13,7 @@ struct fib_alias {
 	u8			fa_type;
 	u8			fa_scope;
 	u8			fa_state;
+	unsigned long		fa_age;
 };
 
 #define FA_S_ACCESSED	0x01
-- 
1.4.3.4


             reply	other threads:[~2007-06-25  4:58 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-25  4:58 Varun Chandramohan [this message]
2007-06-25  5:14 ` [PATCH] Age Entry For IPv4 Route Table YOSHIFUJI Hideaki / 吉藤英明
2007-06-25  5:21   ` Varun Chandramohan
     [not found]     ` <20070625.003208.69400937.davem@davemloft.net>
2007-06-25  7:58       ` Varun Chandramohan
2007-06-25  8:42         ` David Miller
2007-06-25 14:10 ` Eric Dumazet

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070625102838.9d1fee20.varunc@linux.vnet.ibm.com \
    --to=varunc@linux.vnet.ibm.com \
    --cc=dlstevens@us.ibm.com \
    --cc=netdev@vger.kernel.org \
    --cc=sri@us.ibm.com \
    --cc=varuncha@in.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).