summaryrefslogtreecommitdiff
path: root/ofproto/ofproto-dpif-sflow.c
diff options
context:
space:
mode:
authorPravin B Shelar <pshelar@ovn.org>2016-03-24 09:30:57 -0700
committerPravin B Shelar <pshelar@ovn.org>2016-03-24 09:30:57 -0700
commitec6c537986b4c7dc852575107e32184b33d974e8 (patch)
tree462ea495258de0f76666414d0c96108f1cc71fb9 /ofproto/ofproto-dpif-sflow.c
parent6b6e13293e825dc69937615f42fc99eb023c9086 (diff)
downloadopenvswitch-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.c8
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;
}
}