aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/interface.h
diff options
context:
space:
mode:
authorNeale Ranns <nranns@cisco.com>2018-04-23 05:31:19 -0700
committerDamjan Marion <dmarion.lists@gmail.com>2018-04-25 12:31:38 +0000
commit580bba72e55961b1d3f98144244ac1780855f74a (patch)
tree91fc618ab0bb717966e98d3fcb39a1fbdf04d51b /src/vnet/interface.h
parent260de8684d48c1a69e169112fa053d2df1b4871f (diff)
Adjacency walk more scalable
When walking all adjacencies for a given {next-hop,interface} instead of walking all the adjacencies on that interface and matching the next-hop (which is O(n) in the number of adjacencies on that link, find all instances of an adjacency with any link-type and wtih that {next-hop,interfacE} pair: this is O(1). Change-Id: Ic80399fc9e93c8df111379c039e592d8cafbab18 Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'src/vnet/interface.h')
-rw-r--r--src/vnet/interface.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/vnet/interface.h b/src/vnet/interface.h
index 7556bc5544e..b7b350f68fe 100644
--- a/src/vnet/interface.h
+++ b/src/vnet/interface.h
@@ -296,6 +296,11 @@ typedef enum vnet_link_t_
[VNET_LINK_NSH] = "nsh", \
}
+#define FOR_EACH_VNET_LINK(_link) \
+ for (_link = VNET_LINK_IP4; \
+ _link <= VNET_LINK_NSH; \
+ _link++)
+
/**
* @brief Number of link types. Not part of the enum so it does not have to be included in
* switch statements