In such a case, yes, you are right this commit will break things if only the logical-src-port is specified without the prefixes since it will insert the SRC IP address of SF(Router).
However, there are several easy workarounds for this.
1. - Specify the prefixes for the sources (most obvious one).
2. - Specify the SF(Router) interfaces to be router owned. (see below)
1.
If the entity is a router created by neutron, then there is no issue
since the commit takes care of this scenario.
E.g.
ext net1 net2 Router1- --|---Router2- --|src2
| | |src1
|---
| | |src3
2.
Your question is more about a SF performing routing/NAT.
E.g. In topoloy below, SF is a Router.
ext |--SF1 Router1- -|--SF( Router) -|--src2
|--SF2
| | |--src1
|---
| | |--src3
In such a case, yes, you are right this commit will break things if only the logical-src-port is specified without the prefixes since it will insert the SRC IP address of SF(Router).
However, there are several easy workarounds for this.
1. - Specify the prefixes for the sources (most obvious one).
2. - Specify the SF(Router) interfaces to be router owned. (see below)
root@fs- 10-145- 105-24: /opt/stack/ networking- sfc# neutron port-show 0f15bfa0- c522-4cc8- b04a-b2f92df2b7 f1 ------- ------- ---+--- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- -- ------- ------- ---+--- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- -- address_ pairs | | 21T20:49: 48Z | cbae-4f6d- 9de5-773f37c9fa f1 |
+------
| Field | Value |
+------
| admin_state_up | True |
| allowed_
| binding:vnic_type | normal |
| created_at | 2017-02-
| description | |
| device_id | 5f7d0f49-
| device_owner | compute:None |
If the above SF is doing routing or NAT, then change the device owner to be network: router_ interface instead of nova:compute
neutron port-update --device-owner network: router_ interface 0f15bfa0- c522-4cc8- b04a-b2f92df2b7 f1 10-145- 105-24: /opt/stack/ networking- sfc# neutron port-show 0f15bfa0- c522-4cc8- b04a-b2f92df2b7 f1 ------- ------- ---+--- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- -- ------- ------- ---+--- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- -- address_ pairs | | 21T20:49: 48Z | cbae-4f6d- 9de5-773f37c9fa f1 | router_ interface
root@fs-
+------
| Field | Value |
+------
| admin_state_up | True |
| allowed_
| binding:vnic_type | normal |
| created_at | 2017-02-
| description | |
| device_id | 5f7d0f49-
| device_owner | network:
If the device_owner is a router_interface, the commit will not mess with it (not insert its source IP into the flow classifier)