summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPravin B Shelar <pshelar@nicira.com>2015-08-26 23:46:49 -0700
committerDavid S. Miller <davem@davemloft.net>2015-08-27 15:42:47 -0700
commit980c394c53e420f7e5484d011378a4bec861ec7a (patch)
tree0756eeef57310a88dfa5ac3981486436c30963fe
parent87cd3dcaf4bd135e44ee187baf788deeb011e58d (diff)
geneve: Use skb mark and protocol to lookup route.
On packet transmit path geneve need to lookup route. Following patch improves route lookup using more parameters. Signed-off-by: Pravin B Shelar <pshelar@nicira.com> Reviewed-by: Jesse Gross <jesse@nicira.com> Acked-by: Thomas Graf <tgraf@suug.ch> Acked-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/geneve.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c
index 95e9da0a52f2..3c5b2b100943 100644
--- a/drivers/net/geneve.c
+++ b/drivers/net/geneve.c
@@ -202,6 +202,9 @@ static netdev_tx_t geneve_xmit(struct sk_buff *skb, struct net_device *dev)
memset(&fl4, 0, sizeof(fl4));
fl4.flowi4_tos = RT_TOS(tos);
fl4.daddr = geneve->remote.sin_addr.s_addr;
+ fl4.flowi4_mark = skb->mark;
+ fl4.flowi4_proto = IPPROTO_UDP;
+
rt = ip_route_output_key(geneve->net, &fl4);
if (IS_ERR(rt)) {
netdev_dbg(dev, "no route to %pI4\n", &fl4.daddr);