diff options
author | Pravin B Shelar <pshelar@ovn.org> | 2016-03-24 09:30:57 -0700 |
---|---|---|
committer | Pravin B Shelar <pshelar@ovn.org> | 2016-03-24 09:30:57 -0700 |
commit | ec6c537986b4c7dc852575107e32184b33d974e8 (patch) | |
tree | 462ea495258de0f76666414d0c96108f1cc71fb9 /ofproto/ofproto-dpif-sflow.c | |
parent | 6b6e13293e825dc69937615f42fc99eb023c9086 (diff) | |
download | openvswitch-ec6c537986b4c7dc852575107e32184b33d974e8.tar.gz |
sflow: use ovs route API to get source IP address.
Signed-off-by: Pravin B Shelar <pshelar@ovn.org>
Acked-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'ofproto/ofproto-dpif-sflow.c')
-rw-r--r-- | ofproto/ofproto-dpif-sflow.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/ofproto/ofproto-dpif-sflow.c b/ofproto/ofproto-dpif-sflow.c index f11699cd9..df915ff7d 100644 --- a/ofproto/ofproto-dpif-sflow.c +++ b/ofproto/ofproto-dpif-sflow.c @@ -453,10 +453,12 @@ sflow_choose_agent_address(const char *agent_device, if (inet_parse_active(target, SFL_DEFAULT_COLLECTOR_PORT, &sa.ss) && sa.ss.ss_family == AF_INET) { - ovs_be32 gw; + struct in6_addr addr6, src, gw; - if (ovs_router_lookup4(sa.sin.sin_addr.s_addr, name, &gw) - && !netdev_get_in4_by_name(name, &in4)) { + in6_addr_set_mapped_ipv4(&addr6, sa.sin.sin_addr.s_addr); + if (ovs_router_lookup(&addr6, name, &src, &gw)) { + + in4.s_addr = in6_addr_get_mapped_ipv4(&src); goto success; } } |