[ovs-dev] [PATCH 3/3] Handle tunnel set changes for BUM traffic in the vtep emulator
Guru Shetty
guru at ovn.org
Wed Mar 2 19:22:45 UTC 2016
On 12 February 2016 at 17:12, Darrell Ball <dlu998 at gmail.com> wrote:
> Signed-off-by: Darrell Ball <dball at vmware.com>
>
Other than Russell's comments:
Please add a descriptive comment on the problem and your solution. I was
looking at a p0 bug with ovs-vtep recently and I couldn't understand why
something was changed (by myself). A descriptive commit message helps a lot.
pep8 on the file shows the following new issues with formatting ( There are
some older issues that I think needs to be fixed separately).
vtep/ovs-vtep:147:19: E128 continuation line under-indented for visual
indent
vtep/ovs-vtep:150:16: E111 indentation is not a multiple of four
vtep/ovs-vtep:151:16: E111 indentation is not a multiple of four
> ---
> vtep/ovs-vtep | 20 ++++++++++++++++++--
> 1 file changed, 18 insertions(+), 2 deletions(-)
>
> diff --git a/vtep/ovs-vtep b/vtep/ovs-vtep
> index 46a5692..54bf0db 100755
> --- a/vtep/ovs-vtep
> +++ b/vtep/ovs-vtep
> @@ -135,15 +135,31 @@ class Logical_Switch(object):
> ovs_ofctl("add-flow %s
> table=1,priority=1,in_port=%s,action=%s"
> % (self.short_name, port_no,
> ",".join(flood_ports)))
>
> + existing_flow = 0
> + appended_flood_tunnel_port = 0
> + flows = ovs_ofctl("dump-flows %s table=1,cookie=0x4848/-1"
> + % self.short_name).splitlines()
> + for f in flows:
> + if ("table" in f):
> + existing_flow = 1
> + break
> +
> # Traffic coming from a VTEP physical port should only be flooded
> to
> # one 'unknown-dst' and to all other physical ports that belong
> to that
> # VTEP device and this logical switch.
> for tunnel in self.unknown_dsts:
> port_no = self.tunnels[tunnel][0]
> flood_ports.append(port_no)
> + appended_flood_tunnel_port = 1
> break
> -
> - ovs_ofctl("add-flow %s table=1,priority=0,action=%s"
> + # Handle remote tunnel port set changes
> + if ((existing_flow == 1) and (appended_flood_tunnel_port == 1)):
> + ovs_ofctl(
> + "mod-flows %s
> table=1,priority=0,cookie=0x4848/-1,action=%s"
> + % (self.short_name, ",".join(flood_ports)))
> + elif (existing_flow == 0):
> + ovs_ofctl(
> + "add-flow %s table=1,priority=0,cookie=0x4848,action=%s"
> % (self.short_name, ",".join(flood_ports)))
>
I am not quite sure I understand the problem here. 'add-flow' with same
match but different actions should update the flow automatically. What is
the case when you need this? You can see that update_flood is called from
numerous places. Why is this a problem only with " tunnel set changes"?
>
> def add_lbinding(self, lbinding):
> --
> 1.9.1
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>
More information about the dev
mailing list