aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-03-11 19:23:02 -0500
committerDavid S. Miller <davem@davemloft.net>2011-03-12 15:08:47 -0800
commit59b1a94c9a034e63a5e030a5154be1d4d84677d9 (patch)
tree218ffc79cd1fc4aaaf51feafeb1fad1e8e5295b2
parentnet: Break struct flowi out into AF specific instances. (diff)
downloadlinux-dev-59b1a94c9a034e63a5e030a5154be1d4d84677d9.tar.xz
linux-dev-59b1a94c9a034e63a5e030a5154be1d4d84677d9.zip
net: Add flowiX_to_flowi() shorthands.
This is just a shorthand which will help in passing around AF specific flow structures as generic ones. Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--include/net/flow.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/net/flow.h b/include/net/flow.h
index 931169095cc9..8139257ee11e 100644
--- a/include/net/flow.h
+++ b/include/net/flow.h
@@ -112,6 +112,21 @@ struct flowi {
#define fl6_gre_key u.ip6.uli.gre_key
} __attribute__((__aligned__(BITS_PER_LONG/8)));
+static inline struct flowi *flowi4_to_flowi(struct flowi4 *fl4)
+{
+ return container_of(fl4, struct flowi, u.ip4);
+}
+
+static inline struct flowi *flowi6_to_flowi(struct flowi6 *fl6)
+{
+ return container_of(fl6, struct flowi, u.ip6);
+}
+
+static inline struct flowi *flowidn_to_flowi(struct flowidn *fldn)
+{
+ return container_of(fldn, struct flowi, u.dn);
+}
+
#define FLOW_DIR_IN 0
#define FLOW_DIR_OUT 1
#define FLOW_DIR_FWD 2