On Mon, Jan 12, 2015 at 6:41 PM, Fan Du <[email protected]> wrote:
> Introduce ovs_tunnel_route_lookup to consolidate route lookup
> shared by vxlan, gre, and geneve ports.
>
> Signed-off-by: Fan Du <[email protected]>
> ---
> Chnage log:
> v2:
> - Use inline instead of function call
> - Rename vport_route_lookup to ovs_tunnel_route_lookup
> ---
> net/openvswitch/vport-geneve.c | 11 +----------
> net/openvswitch/vport-gre.c | 10 +---------
> net/openvswitch/vport-vxlan.c | 10 +---------
> net/openvswitch/vport.h | 18 ++++++++++++++++++
> 4 files changed, 21 insertions(+), 28 deletions(-)
>
....
> +static inline struct rtable *ovs_tunnel_route_lookup(struct net *net,
> + struct
> ovs_key_ipv4_tunnel *key,
> + struct sk_buff *skb,
> + struct flowi4 *fl,
> + u8 protocol)
> +{
> + struct rtable *rt;
> +
> + memset(fl, 0, sizeof(*fl));
> + fl->daddr = key->ipv4_dst;
> + fl->saddr = key->ipv4_src;
> + fl->flowi4_tos = RT_TOS(key->ipv4_tos);
> + fl->flowi4_mark = skb->mark;
> + fl->flowi4_proto = protocol;
> +
> + rt = ip_route_output_key(net, fl);
> + return rt;
> +}
ovs_tunnel_get_egress_info() is also directly calling ip_route_output_key()
> #endif /* vport.h */
> --
> 1.7.1
>
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev