<div dir="ltr">Hi Cathy and other guys <div>     I am a beginner that use networking-sfc. I create a port-chain-list that want to steer a flow that is  from public-net to private-net  to SF node.  The DVR is enable in my test environment.</div><div>The test result is the flow was steered from destination node  to SF node and return to the destination  node rightly, but the flow was match the classify rule again,so the flow can not to be send to</div><div>the destination VM. </div><div>      In networking-sfc agent code . there is a function update_src_node_flow_rules  that create a normal flow to handle this case. But in networking-sfc ovs dirver code, _update_src_node_flowrules  can't </div><div>call ask_agent_to_update_src_node_flow_rules to notify agent to exec update_src_node_flow_rules. The reason is  the function  _get_portchain_src_node_flowrule return None. In  function _get_portchain_src_node_flowrule , the check</div><div>that was marked red is not right in this  case.</div><div><br></div><div><br></div><div><div>def _get_portchain_src_node_flowrule(self, node,</div><div>                                         add_fc_ids=None, del_fc_ids=None):</div><div>        try:</div><div>            add_fc_rt = []</div><div>            del_fc_rt = []</div><div><br></div><div>            if add_fc_ids:</div><div>                for fc in self._get_fcs_by_ids(add_fc_ids):</div><div>                 <font color="#0000ff">   <span style="background-color:rgb(255,0,0)">if not fc.get('logical_source_port', None):</span></font></div><div><span style="background-color:rgb(255,0,0)"><font color="#0000ff">                        add_fc_rt.append(fc)</font></span></div><div><br></div><div>            if del_fc_ids:</div><div>                for fc in self._get_fcs_by_ids(del_fc_ids):</div><div>                    if not fc.get('logical_source_port', None):</div><div>                        del_fc_rt.append(fc)</div><div><br></div><div>            if not add_fc_rt and not del_fc_rt:</div><div>                return None</div><div><br></div><div>            return self._build_portchain_flowrule_body_without_port(</div><div>                node, add_fc_rt, del_fc_rt)</div><div>        except Exception as e:</div><div>            LOG.exception(e)</div><div>            LOG.error(_LE("_get_portchain_src_node_flowrule failed"))</div></div><div><br></div><div><br></div><div>      Is it a bug or my configure is wrong? </div><div><br></div><div><br></div><div><br></div><div><div>root@rg1-com01 ~]# neutron  flow-classifier-show  4542a747-b205-41ff-970c-1ea11fa956fc </div><div>+----------------------------+--------------------------------------+</div><div>| Field                      | Value                                |</div><div>+----------------------------+--------------------------------------+</div><div>| description                |                                      |</div><div>| destination_ip_prefix      | <a href="http://192.168.1.0/24">192.168.1.0/24</a>                       |</div><div>| destination_port_range_max |                                      |</div><div>| destination_port_range_min |                                      |</div><div>| ethertype                  | IPv4                                 |</div><div>| id                         | 4542a747-b205-41ff-970c-1ea11fa956fc |</div><div>| l7_parameters              | {}                                   |</div><div>| logical_destination_port   |                                      |</div><div>| logical_source_port        | f18895cf-6c4b-495a-8bd5-e8f12ae86541 |</div><div>| name                       | FC-F3                                |</div><div>| protocol                   |                                      |</div><div>| source_ip_prefix           | <a href="http://192.168.200.0/24">192.168.200.0/24</a>                     |</div><div>| source_port_range_max      |                                      |</div><div>| source_port_range_min      |                                      |</div><div>| tenant_id                  | 02e5a953a113479388103c585f5b5ae1     |</div><div>+----------------------------+--------------------------------------+</div></div><div><br></div><div>the original flow  is 192.168.200.2 to 192.168.200.202 floatingip( 192.168.1.202  private ip)</div><div>logical_source_port      is  fg-xxx interface in namespace fip. <br></div><div><br></div><div>Thanks</div><div>Jim</div></div>