From: sfeldma@gmail.com
To: netdev@vger.kernel.org
Cc: jiri@resnulli.us, siva.mannem.lnx@gmail.com,
pjonnala@broadcom.com, stephen@networkplumber.org,
roopa@cumulusnetworks.com, andrew@lunn.ch, f.fainelli@gmail.com,
vivien.didelot@savoirfairelinux.com
Subject: [PATCH net-next 1/7] rocker: track when FDB entry is touched.
Date: Fri, 18 Sep 2015 12:55:45 -0700 [thread overview]
Message-ID: <1442606151-50429-2-git-send-email-sfeldma@gmail.com> (raw)
In-Reply-To: <1442606151-50429-1-git-send-email-sfeldma@gmail.com>
From: Scott Feldman <sfeldma@gmail.com>
The entry is touched once when created, and touched again for each update.
The touched time is used to calculate FDB entry age.
Signed-off-by: Scott Feldman <sfeldma@gmail.com>
---
drivers/net/ethernet/rocker/rocker.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/drivers/net/ethernet/rocker/rocker.c b/drivers/net/ethernet/rocker/rocker.c
index 34ac41a..e517e9c 100644
--- a/drivers/net/ethernet/rocker/rocker.c
+++ b/drivers/net/ethernet/rocker/rocker.c
@@ -152,6 +152,7 @@ struct rocker_fdb_tbl_entry {
struct hlist_node entry;
u32 key_crc32; /* key */
bool learned;
+ unsigned long touched;
struct rocker_fdb_tbl_key {
u32 pport;
u8 addr[ETH_ALEN];
@@ -3629,6 +3630,7 @@ static int rocker_port_fdb(struct rocker_port *rocker_port,
return -ENOMEM;
fdb->learned = (flags & ROCKER_OP_FLAG_LEARNED);
+ fdb->touched = jiffies;
fdb->key.pport = rocker_port->pport;
ether_addr_copy(fdb->key.addr, addr);
fdb->key.vlan_id = vlan_id;
@@ -3638,13 +3640,17 @@ static int rocker_port_fdb(struct rocker_port *rocker_port,
found = rocker_fdb_tbl_find(rocker, fdb);
- if (removing && found) {
- rocker_port_kfree(trans, fdb);
- if (trans != SWITCHDEV_TRANS_PREPARE)
- hash_del(&found->entry);
- } else if (!removing && !found) {
+ if (found) {
+ found->touched = jiffies;
+ if (removing) {
+ rocker_port_kfree(trans, fdb);
+ if (trans != SWITCHDEV_TRANS_PREPARE)
+ hash_del(&found->entry);
+ }
+ } else if (!removing) {
if (trans != SWITCHDEV_TRANS_PREPARE)
- hash_add(rocker->fdb_tbl, &fdb->entry, fdb->key_crc32);
+ hash_add(rocker->fdb_tbl, &fdb->entry,
+ fdb->key_crc32);
}
spin_unlock_irqrestore(&rocker->fdb_tbl_lock, lock_flags);
--
1.7.10.4
next prev parent reply other threads:[~2015-09-18 19:53 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-18 19:55 [PATCH net-next 0/7] bridge: don't age out externally added FDB entries sfeldma
2015-09-18 19:55 ` sfeldma [this message]
2015-09-19 6:31 ` [PATCH net-next 1/7] rocker: track when FDB entry is touched Jiri Pirko
2015-09-18 19:55 ` [PATCH net-next 2/7] rocker: store rocker_port in fdb key rather than pport sfeldma
2015-09-19 6:31 ` Jiri Pirko
2015-09-18 19:55 ` [PATCH net-next 3/7] rocker: adding port ageing_time for ageing out FDB entries sfeldma
2015-09-19 6:30 ` Jiri Pirko
2015-09-19 17:16 ` Scott Feldman
2015-09-18 19:55 ` [PATCH net-next 4/7] bridge: define some min/max ageing time constants we'll use next sfeldma
2015-09-19 6:45 ` Jiri Pirko
2015-09-19 17:20 ` Scott Feldman
2015-09-22 8:28 ` Premkumar Jonnala
2015-09-18 19:55 ` [PATCH net-next 5/7] rocker: add FDB cleanup timer sfeldma
2015-09-19 6:56 ` Jiri Pirko
2015-09-18 19:55 ` [PATCH net-next 6/7] bridge: don't age externally added FDB entries sfeldma
2015-09-18 21:26 ` Vivien Didelot
2015-09-19 6:57 ` Jiri Pirko
2015-09-22 8:22 ` Premkumar Jonnala
2015-09-18 19:55 ` [PATCH net-next 7/7] switchdev: update documentation on FDB ageing_time sfeldma
2015-09-18 21:35 ` Vivien Didelot
2015-09-19 6:58 ` Jiri Pirko
2015-09-20 1:21 ` roopa
2015-09-20 2:21 ` Scott Feldman
2015-09-20 14:24 ` roopa
2015-09-20 15:56 ` Scott Feldman
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=1442606151-50429-2-git-send-email-sfeldma@gmail.com \
--to=sfeldma@gmail.com \
--cc=andrew@lunn.ch \
--cc=f.fainelli@gmail.com \
--cc=jiri@resnulli.us \
--cc=netdev@vger.kernel.org \
--cc=pjonnala@broadcom.com \
--cc=roopa@cumulusnetworks.com \
--cc=siva.mannem.lnx@gmail.com \
--cc=stephen@networkplumber.org \
--cc=vivien.didelot@savoirfairelinux.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.