Signed-off-by: yinpeijun <yinpei...@huawei.com> --- ofproto/ofproto-dpif-xlate.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)
diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c index f737877..396d261 100644 --- a/ofproto/ofproto-dpif-xlate.c +++ b/ofproto/ofproto-dpif-xlate.c @@ -2749,6 +2749,7 @@ compose_output_action__(struct xlate_ctx *ctx, ofp_port_t ofp_port, struct flow *flow = &ctx->xin->flow; struct flow_tnl flow_tnl; ovs_be16 flow_vlan_tci; + ovs_be32 tnl_nw_src; uint32_t flow_pkt_mark; uint8_t flow_nw_tos; odp_port_t out_port, odp_port; @@ -2985,6 +2986,17 @@ compose_output_action__(struct xlate_ctx *ctx, ofp_port_t ofp_port, ovs_native_tunneling_is_on(ctx->xbridge->ofproto)) { odp_tnl_port = tnl_port_map_lookup(flow, wc); + /*when 'remote_ip=flow' the tnl port show listening ports + *ip_src is 0.0.0.0 , so we should try again with nw_src + *zero. */ + if(odp_tnl_port == ODPP_NONE) { + tnl_nw_src = flow->nw_src; + + flow->nw_src = htonl(0); + odp_tnl_port = tnl_port_map_lookup(flow, wc); + + flow->nw_src = tnl_nw_src; + } } if (odp_tnl_port != ODPP_NONE) { -- 1.9.4.msysgit.0 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev