[ovs-dev] [PATCH] datapath: Update for changes in 2.6.39-rc1

Simon Horman horms at verge.net.au
Thu Mar 31 07:32:07 UTC 2011


Update for flowi4 and ip_route_output_flow() changes
in 2.6.39-rc1.

Signed-off-by: Simon Horman <horms at verge.net.au>

---

Compile tested only

It is not immediately obvious to me how these updates
can be achieved using backwards-compatibility macros.
I am open to suggestions.
---
 datapath/tunnel.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/datapath/tunnel.c b/datapath/tunnel.c
index 7863b7a..49702cf 100644
--- a/datapath/tunnel.c
+++ b/datapath/tunnel.c
@@ -991,6 +991,7 @@ static struct rtable *find_route(struct vport *vport,
 		return cur_cache->rt;
 	} else {
 		struct rtable *rt;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39)
 		struct flowi fl = { .nl_u = { .ip4_u =
 					      { .daddr = mutable->daddr,
 						.saddr = mutable->saddr,
@@ -999,6 +1000,16 @@ static struct rtable *find_route(struct vport *vport,
 
 		if (unlikely(ip_route_output_key(&init_net, &rt, &fl)))
 			return NULL;
+#else
+		struct flowi4 fl = { .daddr = mutable->daddr,
+				     .saddr = mutable->saddr,
+				     .flowi4_tos = tos,
+				     .flowi4_proto = tnl_vport->tnl_ops->ipproto };
+
+		rt = ip_route_output_key(&init_net, &fl);
+		if (unlikely(IS_ERR(rt)))
+			return NULL;
+#endif
 
 		if (likely(tos == mutable->tos))
 			*cache = build_cache(vport, mutable, rt);
-- 
1.7.4.1




More information about the dev mailing list