Re: [ovs-dev] [PATCH ovn] pinctrl: Handle service monitors even if the lport doesn't have IPv4 addresses set.

2020-04-18 Thread Numan Siddique
On Fri, Apr 17, 2020 at 8:18 PM Mark Michelson  wrote:
>
> Acked-by: Mark Michelson 

Thanks for the review. I applied this patch to master and branch-20.03

Numan

>
> On 4/17/20 2:50 AM, num...@ovn.org wrote:
> > From: Numan Siddique 
> >
> > If a logical port is only configured with MAC address(es) in the
> > Logical_Switch_Port.addresses, pinctrl is ignoring the service monitors
> > configured for that logical port. This patch allows that.
> >
> > Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1801058
> > Signed-off-by: Numan Siddique 
> > ---
> >   controller/pinctrl.c |  5 +
> >   tests/ovn.at | 31 +++
> >   tests/system-ovn.at  |  4 ++--
> >   3 files changed, 38 insertions(+), 2 deletions(-)
> >
> > diff --git a/controller/pinctrl.c b/controller/pinctrl.c
> > index a053938ec..8703641c2 100644
> > --- a/controller/pinctrl.c
> > +++ b/controller/pinctrl.c
> > @@ -5786,6 +5786,11 @@ sync_svc_monitors(struct ovsdb_idl_txn 
> > *ovnsb_idl_txn,
> >
> >   if (mac_found) {
> >   break;
> > +} else if (!laddrs.n_ipv4_addrs) {
> > +/* IPv4 address(es) are not configured. Use the first mac. 
> > */
> > +ea = laddrs.ea;
> > +mac_found = true;
> > +break;
> >   }
> >   }
> >
> > diff --git a/tests/ovn.at b/tests/ovn.at
> > index f83d3f536..7858c496e 100644
> > --- a/tests/ovn.at
> > +++ b/tests/ovn.at
> > @@ -17947,6 +17947,37 @@ AT_CHECK([cat lflows.txt], [0], [dnl
> > table=6 (lr_in_dnat ), priority=120  , match=(ct.new && ip && 
> > ip4.dst == 10.0.0.10 && tcp && tcp.dst == 80 && 
> > is_chassis_resident("cr-lr0-public")), action=(drop;)
> >   ])
> >
> > +# Delete sw0-p1
> > +ovn-nbctl lsp-del sw0-p1
> > +
> > +OVS_WAIT_UNTIL([test 1 = $(ovn-sbctl --bare --columns _uuid find \
> > +service_monitor | sed '/^$/d' | wc -l)])
> > +
> > +# Add back sw0-p1 but without any IP address.
> > +ovn-nbctl lsp-add sw0 sw0-p1
> > +ovn-nbctl lsp-set-addresses sw0-p1 "50:54:00:00:00:03" -- \
> > +lsp-set-port-security sw0-p1 "50:54:00:00:00:03"
> > +
> > +OVS_WAIT_UNTIL([test 2 = $(ovn-sbctl --bare --columns status find \
> > +service_monitor | grep offline | wc -l)])
> > +
> > +ovn-nbctl lsp-del sw0-p1
> > +ovn-nbctl lsp-del sw1-p1
> > +OVS_WAIT_UNTIL([test 0 = $(ovn-sbctl --bare --columns _uuid find \
> > +service_monitor | sed '/^$/d' | wc -l)])
> > +
> > +# Add back sw0-p1 but without any address set.
> > +ovn-nbctl lsp-add sw0 sw0-p1
> > +
> > +OVS_WAIT_UNTIL([test 1 = $(ovn-sbctl --bare --columns _uuid find \
> > +service_monitor | sed '/^$/d' | wc -l)])
> > +
> > +OVS_WAIT_UNTIL([test 0 = $(ovn-sbctl --bare --columns status find \
> > +service_monitor | grep offline | wc -l)])
> > +
> > +OVS_WAIT_UNTIL([test 0 = $(ovn-sbctl --bare --columns status find \
> > +service_monitor | grep online | wc -l)])
> > +
> >   OVN_CLEANUP([hv1], [hv2])
> >   AT_CLEANUP
> >
> > diff --git a/tests/system-ovn.at b/tests/system-ovn.at
> > index 000b3f13b..bdb9768d2 100644
> > --- a/tests/system-ovn.at
> > +++ b/tests/system-ovn.at
> > @@ -3356,8 +3356,8 @@ start_daemon ovn-controller
> >   ovn-nbctl ls-add sw0
> >
> >   ovn-nbctl lsp-add sw0 sw0-p1
> > -ovn-nbctl lsp-set-addresses sw0-p1 "50:54:00:00:00:03 10.0.0.3"
> > -ovn-nbctl lsp-set-port-security sw0-p1 "50:54:00:00:00:03 10.0.0.3"
> > +ovn-nbctl lsp-set-addresses sw0-p1 "50:54:00:00:00:03"
> > +ovn-nbctl lsp-set-port-security sw0-p1 "50:54:00:00:00:03"
> >
> >   ovn-nbctl lsp-add sw0 sw0-p2
> >   ovn-nbctl lsp-set-addresses sw0-p2 "50:54:00:00:00:04 10.0.0.4"
> >
>
> ___
> dev mailing list
> d...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH ovn] pinctrl: Handle service monitors even if the lport doesn't have IPv4 addresses set.

2020-04-17 Thread Mark Michelson

Acked-by: Mark Michelson 

On 4/17/20 2:50 AM, num...@ovn.org wrote:

From: Numan Siddique 

If a logical port is only configured with MAC address(es) in the
Logical_Switch_Port.addresses, pinctrl is ignoring the service monitors
configured for that logical port. This patch allows that.

Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1801058
Signed-off-by: Numan Siddique 
---
  controller/pinctrl.c |  5 +
  tests/ovn.at | 31 +++
  tests/system-ovn.at  |  4 ++--
  3 files changed, 38 insertions(+), 2 deletions(-)

diff --git a/controller/pinctrl.c b/controller/pinctrl.c
index a053938ec..8703641c2 100644
--- a/controller/pinctrl.c
+++ b/controller/pinctrl.c
@@ -5786,6 +5786,11 @@ sync_svc_monitors(struct ovsdb_idl_txn *ovnsb_idl_txn,
  
  if (mac_found) {

  break;
+} else if (!laddrs.n_ipv4_addrs) {
+/* IPv4 address(es) are not configured. Use the first mac. */
+ea = laddrs.ea;
+mac_found = true;
+break;
  }
  }
  
diff --git a/tests/ovn.at b/tests/ovn.at

index f83d3f536..7858c496e 100644
--- a/tests/ovn.at
+++ b/tests/ovn.at
@@ -17947,6 +17947,37 @@ AT_CHECK([cat lflows.txt], [0], [dnl
table=6 (lr_in_dnat ), priority=120  , match=(ct.new && ip && ip4.dst == 10.0.0.10 && tcp 
&& tcp.dst == 80 && is_chassis_resident("cr-lr0-public")), action=(drop;)
  ])
  
+# Delete sw0-p1

+ovn-nbctl lsp-del sw0-p1
+
+OVS_WAIT_UNTIL([test 1 = $(ovn-sbctl --bare --columns _uuid find \
+service_monitor | sed '/^$/d' | wc -l)])
+
+# Add back sw0-p1 but without any IP address.
+ovn-nbctl lsp-add sw0 sw0-p1
+ovn-nbctl lsp-set-addresses sw0-p1 "50:54:00:00:00:03" -- \
+lsp-set-port-security sw0-p1 "50:54:00:00:00:03"
+
+OVS_WAIT_UNTIL([test 2 = $(ovn-sbctl --bare --columns status find \
+service_monitor | grep offline | wc -l)])
+
+ovn-nbctl lsp-del sw0-p1
+ovn-nbctl lsp-del sw1-p1
+OVS_WAIT_UNTIL([test 0 = $(ovn-sbctl --bare --columns _uuid find \
+service_monitor | sed '/^$/d' | wc -l)])
+
+# Add back sw0-p1 but without any address set.
+ovn-nbctl lsp-add sw0 sw0-p1
+
+OVS_WAIT_UNTIL([test 1 = $(ovn-sbctl --bare --columns _uuid find \
+service_monitor | sed '/^$/d' | wc -l)])
+
+OVS_WAIT_UNTIL([test 0 = $(ovn-sbctl --bare --columns status find \
+service_monitor | grep offline | wc -l)])
+
+OVS_WAIT_UNTIL([test 0 = $(ovn-sbctl --bare --columns status find \
+service_monitor | grep online | wc -l)])
+
  OVN_CLEANUP([hv1], [hv2])
  AT_CLEANUP
  
diff --git a/tests/system-ovn.at b/tests/system-ovn.at

index 000b3f13b..bdb9768d2 100644
--- a/tests/system-ovn.at
+++ b/tests/system-ovn.at
@@ -3356,8 +3356,8 @@ start_daemon ovn-controller
  ovn-nbctl ls-add sw0
  
  ovn-nbctl lsp-add sw0 sw0-p1

-ovn-nbctl lsp-set-addresses sw0-p1 "50:54:00:00:00:03 10.0.0.3"
-ovn-nbctl lsp-set-port-security sw0-p1 "50:54:00:00:00:03 10.0.0.3"
+ovn-nbctl lsp-set-addresses sw0-p1 "50:54:00:00:00:03"
+ovn-nbctl lsp-set-port-security sw0-p1 "50:54:00:00:00:03"
  
  ovn-nbctl lsp-add sw0 sw0-p2

  ovn-nbctl lsp-set-addresses sw0-p2 "50:54:00:00:00:04 10.0.0.4"



___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


[ovs-dev] [PATCH ovn] pinctrl: Handle service monitors even if the lport doesn't have IPv4 addresses set.

2020-04-17 Thread numans
From: Numan Siddique 

If a logical port is only configured with MAC address(es) in the
Logical_Switch_Port.addresses, pinctrl is ignoring the service monitors
configured for that logical port. This patch allows that.

Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1801058
Signed-off-by: Numan Siddique 
---
 controller/pinctrl.c |  5 +
 tests/ovn.at | 31 +++
 tests/system-ovn.at  |  4 ++--
 3 files changed, 38 insertions(+), 2 deletions(-)

diff --git a/controller/pinctrl.c b/controller/pinctrl.c
index a053938ec..8703641c2 100644
--- a/controller/pinctrl.c
+++ b/controller/pinctrl.c
@@ -5786,6 +5786,11 @@ sync_svc_monitors(struct ovsdb_idl_txn *ovnsb_idl_txn,
 
 if (mac_found) {
 break;
+} else if (!laddrs.n_ipv4_addrs) {
+/* IPv4 address(es) are not configured. Use the first mac. */
+ea = laddrs.ea;
+mac_found = true;
+break;
 }
 }
 
diff --git a/tests/ovn.at b/tests/ovn.at
index f83d3f536..7858c496e 100644
--- a/tests/ovn.at
+++ b/tests/ovn.at
@@ -17947,6 +17947,37 @@ AT_CHECK([cat lflows.txt], [0], [dnl
   table=6 (lr_in_dnat ), priority=120  , match=(ct.new && ip && 
ip4.dst == 10.0.0.10 && tcp && tcp.dst == 80 && 
is_chassis_resident("cr-lr0-public")), action=(drop;)
 ])
 
+# Delete sw0-p1
+ovn-nbctl lsp-del sw0-p1
+
+OVS_WAIT_UNTIL([test 1 = $(ovn-sbctl --bare --columns _uuid find \
+service_monitor | sed '/^$/d' | wc -l)])
+
+# Add back sw0-p1 but without any IP address.
+ovn-nbctl lsp-add sw0 sw0-p1
+ovn-nbctl lsp-set-addresses sw0-p1 "50:54:00:00:00:03" -- \
+lsp-set-port-security sw0-p1 "50:54:00:00:00:03"
+
+OVS_WAIT_UNTIL([test 2 = $(ovn-sbctl --bare --columns status find \
+service_monitor | grep offline | wc -l)])
+
+ovn-nbctl lsp-del sw0-p1
+ovn-nbctl lsp-del sw1-p1
+OVS_WAIT_UNTIL([test 0 = $(ovn-sbctl --bare --columns _uuid find \
+service_monitor | sed '/^$/d' | wc -l)])
+
+# Add back sw0-p1 but without any address set.
+ovn-nbctl lsp-add sw0 sw0-p1
+
+OVS_WAIT_UNTIL([test 1 = $(ovn-sbctl --bare --columns _uuid find \
+service_monitor | sed '/^$/d' | wc -l)])
+
+OVS_WAIT_UNTIL([test 0 = $(ovn-sbctl --bare --columns status find \
+service_monitor | grep offline | wc -l)])
+
+OVS_WAIT_UNTIL([test 0 = $(ovn-sbctl --bare --columns status find \
+service_monitor | grep online | wc -l)])
+
 OVN_CLEANUP([hv1], [hv2])
 AT_CLEANUP
 
diff --git a/tests/system-ovn.at b/tests/system-ovn.at
index 000b3f13b..bdb9768d2 100644
--- a/tests/system-ovn.at
+++ b/tests/system-ovn.at
@@ -3356,8 +3356,8 @@ start_daemon ovn-controller
 ovn-nbctl ls-add sw0
 
 ovn-nbctl lsp-add sw0 sw0-p1
-ovn-nbctl lsp-set-addresses sw0-p1 "50:54:00:00:00:03 10.0.0.3"
-ovn-nbctl lsp-set-port-security sw0-p1 "50:54:00:00:00:03 10.0.0.3"
+ovn-nbctl lsp-set-addresses sw0-p1 "50:54:00:00:00:03"
+ovn-nbctl lsp-set-port-security sw0-p1 "50:54:00:00:00:03"
 
 ovn-nbctl lsp-add sw0 sw0-p2
 ovn-nbctl lsp-set-addresses sw0-p2 "50:54:00:00:00:04 10.0.0.4"
-- 
2.25.1

___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev