Re: [ovs-dev] [PATCH ovn] northd: Don't poll ovsdb before the connection is fully established

2020-11-09 Thread Numan Siddique
On Thu, Nov 5, 2020 at 10:34 PM Renat Nurgaliyev  wrote:
>
> From: Renat Nurgaliyev 
>
> Before the value configured in northd_probe_interval can be actually
> applied, connection to both northbound and southbound databases must be
> established. In big scale environments, the southbound database can be so
> big that northd cannot establish connection in 5 seconds, before the
> connection is killed by an unreplied probe. This causes endless
> reconnection, and northd can never stabilize. This patch makes sure that
> probes are initially disabled on connections to northbound and southbound
> databases, so that northd can take its time to establish connections
> properly. After we can "reach" the northd_probe_interval option set in
> northbound DB, it is applied to both connections, or
> DEFAULT_PROBE_INTERVAL_MSEC is used if nothing is set by the user.
>
> Signed-off-by: Renat Nurgaliyev 

Hi Renat,

Thanks for the patch. There seems to be some issue with the way this
patch is sent.
If you see here -
https://patchwork.ozlabs.org/project/ovn/patch/cagmx_arlrkenszxhspgfsw5+akty_gs6e3yw3d1xikj4oy6...@mail.gmail.com/

after your signed-off tag, there are below stray lines because of
which the patch doesn't apply cleanly with "git am".

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

Please take a look into that.

The patch overall looks good to me. However the below test case fails
with your patch -

261: ovn-controller-vtep - binding 1 FAILED (wait-until)

Can you please take a look.

I noticed that when ovn-northd is paused - (ovn-appctl -t ovn-northd
pause) and later if the user changes the probe interval
value, it's not updated. This issue exists even before this patch. If
you want you could address this issue too ?

Thanks
Numan


> ---
>  northd/ovn-northd.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/northd/ovn-northd.c b/northd/ovn-northd.c
> index 684c2bd47..073c6a0f3 100644
> --- a/northd/ovn-northd.c
> +++ b/northd/ovn-northd.c
> @@ -100,8 +100,8 @@ static struct eth_addr svc_monitor_mac_ea;
>
>  /* Default probe interval for NB and SB DB connections. */
>  #define DEFAULT_PROBE_INTERVAL_MSEC 5000
> -static int northd_probe_interval_nb = DEFAULT_PROBE_INTERVAL_MSEC;
> -static int northd_probe_interval_sb = DEFAULT_PROBE_INTERVAL_MSEC;
> +static int northd_probe_interval_nb = 0;
> +static int northd_probe_interval_sb = 0;
>
>  #define MAX_OVN_TAGS 4096
> ___
> 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


[ovs-dev] [PATCH] ovsdb-idl: Add ovsdb_idl_monitor_condition_pending().

2020-11-09 Thread Dumitru Ceara
IDL clients had no way of checking whether monitor_cond_change requests
were pending (either local or in flight).  This commit introduces a new
API to check for the state of the conditional monitoring clauses.

Signed-off-by: Dumitru Ceara 
---
 lib/ovsdb-idl.c | 40 
 lib/ovsdb-idl.h |  1 +
 2 files changed, 33 insertions(+), 8 deletions(-)

diff --git a/lib/ovsdb-idl.c b/lib/ovsdb-idl.c
index fdb9d85..8c0f86c 100644
--- a/lib/ovsdb-idl.c
+++ b/lib/ovsdb-idl.c
@@ -188,6 +188,17 @@ enum ovsdb_idl_monitoring {
  outstanding. */
 };
 
+enum ovsdb_idl_monitor_cond_state {
+OVSDB_IDL_MONITOR_COND_ACKED, /* Local conditional monitoring clauses
+   * have been acked by the server. */
+OVSDB_IDL_MONITOR_COND_LOCAL, /* Local conditional monitoring clause
+   * changes have not yet been sent to the
+   * server. */
+OVSDB_IDL_MONITOR_COND_REQUESTED, /* Local conditional monitoring clause
+   * changes have been sent to the server
+   * but have not yet been acked. */
+};
+
 struct ovsdb_idl_db {
 struct ovsdb_idl *idl;
 
@@ -203,8 +214,8 @@ struct ovsdb_idl_db {
 struct json *schema;
 enum ovsdb_idl_monitoring monitoring;
 
-/* True if any of the tables' monitoring conditions has changed. */
-bool cond_changed;
+/* Current state of the conditional monitoring clauses. */
+enum ovsdb_idl_monitor_cond_state cond_state;
 
 unsigned int cond_seqno;   /* Keep track of condition clauses changes
   over a single conditional monitoring session.
@@ -1580,7 +1591,7 @@ ovsdb_idl_db_set_condition(struct ovsdb_idl_db *db,
 
 if (!ovsdb_idl_condition_equals(condition, table_cond)) {
 ovsdb_idl_condition_clone(&table->new_cond, condition);
-db->cond_changed = true;
+db->cond_state = OVSDB_IDL_MONITOR_COND_LOCAL;
 poll_immediate_wake();
 return seqno + 1;
 }
@@ -1638,7 +1649,7 @@ ovsdb_idl_create_cond_change_req(const struct 
ovsdb_idl_condition *cond)
 static struct jsonrpc_msg *
 ovsdb_idl_db_compose_cond_change(struct ovsdb_idl_db *db)
 {
-if (!db->cond_changed) {
+if (db->cond_state != OVSDB_IDL_MONITOR_COND_LOCAL) {
 return NULL;
 }
 
@@ -1672,7 +1683,7 @@ ovsdb_idl_db_compose_cond_change(struct ovsdb_idl_db *db)
 return NULL;
 }
 
-db->cond_changed = false;
+db->cond_state = OVSDB_IDL_MONITOR_COND_REQUESTED;
 struct json *params = json_array_create_3(json_clone(db->monitor_id),
   json_clone(db->monitor_id),
   monitor_cond_change_requests);
@@ -1693,6 +1704,19 @@ ovsdb_idl_db_ack_condition(struct ovsdb_idl_db *db)
 ovsdb_idl_condition_move(&table->ack_cond, &table->req_cond);
 }
 }
+
+/* Ack the last monitor condition change if no local changes happened in
+ * the meantime.
+ */
+if (db->cond_state == OVSDB_IDL_MONITOR_COND_REQUESTED) {
+db->cond_state = OVSDB_IDL_MONITOR_COND_ACKED;
+}
+}
+
+bool
+ovsdb_idl_monitor_condition_pending(struct ovsdb_idl *idl)
+{
+return idl->data.cond_state != OVSDB_IDL_MONITOR_COND_ACKED;
 }
 
 /* Should be called when the IDL fsm is restarted and resyncs table conditions
@@ -1712,7 +1736,7 @@ ovsdb_idl_db_sync_condition(struct ovsdb_idl_db *db)
 {
 bool ack_all = uuid_is_zero(&db->last_id);
 
-db->cond_changed = false;
+db->cond_state = OVSDB_IDL_MONITOR_COND_ACKED;
 for (size_t i = 0; i < db->class_->n_tables; i++) {
 struct ovsdb_idl_table *table = &db->tables[i];
 
@@ -1731,7 +1755,7 @@ ovsdb_idl_db_sync_condition(struct ovsdb_idl_db *db)
 } else {
 /* If there was no "unsent" condition but instead a
  * monitor_cond_change request was in flight, move table->req_cond
- * to table->new_cond and set db->cond_changed to trigger a new
+ * to table->new_cond and set db->cond_state to trigger a new
  * monitor_cond_change request.
  *
  * However, if a new condition has been set by the IDL client,
@@ -1740,7 +1764,7 @@ ovsdb_idl_db_sync_condition(struct ovsdb_idl_db *db)
  */
 if (table->req_cond && !table->new_cond) {
 ovsdb_idl_condition_move(&table->new_cond, &table->req_cond);
-db->cond_changed = true;
+db->cond_state = OVSDB_IDL_MONITOR_COND_LOCAL;
 }
 }
 }
diff --git a/lib/ovsdb-idl.h b/lib/ovsdb-idl.h
index a1a5776..3f19d40 100644
--- a/lib/ovsdb-idl.h
+++ b/lib/ovsdb-idl.h
@@ -421,6 +421,7 @@ unsigned int ovsdb_idl_set_condition(struct ovsdb_idl *,
  const struct ovsdb_idl_con

[ovs-dev] [PATCH ovn] ovn-controller: Fix nb_cfg update with monitor_cond_change in flight.

2020-11-09 Thread Dumitru Ceara
It is not correct for ovn-controller to pass the current SB_Global.nb_cfg
value to ofctrl_put() if there are pending changes to conditional
monitoring clauses (local or in flight).  It might be that after the
monitor condition is acked by the SB, records that were added to the SB
before SB_Global.nb_cfg was set are now sent as updates to
ovn-controller.  These should be first installed in OVS before
ovn-controller reports that it caught up with the current
SB_Global.nb_cfg value.

Signed-off-by: Dumitru Ceara 

---
This patch depends on OVS exposing an API to query the current state of
the monitor condition clauses and should be merged before the following
OVS patch is merged:
https://patchwork.ozlabs.org/project/openvswitch/patch/1604920181-23904-1-git-send-email-dce...@redhat.com/

As a consequence 0day-bot will fail to compile.
---
 controller/ovn-controller.c | 19 ---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/controller/ovn-controller.c b/controller/ovn-controller.c
index a06cae3..621c285 100644
--- a/controller/ovn-controller.c
+++ b/controller/ovn-controller.c
@@ -726,11 +726,23 @@ restore_ct_zones(const struct ovsrec_bridge_table 
*bridge_table,
 }
 
 static int64_t
-get_nb_cfg(const struct sbrec_sb_global_table *sb_global_table)
+get_nb_cfg(const struct sbrec_sb_global_table *sb_global_table,
+   struct ovsdb_idl_loop *sb_loop)
 {
+static int64_t nb_cfg = 0;
+
+/* Delay getting nb_cfg if there are monitor condition changes
+ * in flight.  It might be that those changes would instruct the
+ * server to send updates that happened before SB_Global.nb_cfg.
+ */
+if (ovsdb_idl_monitor_condition_pending(sb_loop->idl)) {
+return nb_cfg;
+}
+
 const struct sbrec_sb_global *sb
 = sbrec_sb_global_table_first(sb_global_table);
-return sb ? sb->nb_cfg : 0;
+nb_cfg = sb ? sb->nb_cfg : 0;
+return nb_cfg;
 }
 
 static const char *
@@ -2574,7 +2586,8 @@ main(int argc, char *argv[])
&ct_zones_data->pending,
sbrec_meter_table_get(ovnsb_idl_loop.idl),
get_nb_cfg(sbrec_sb_global_table_get(
-   ovnsb_idl_loop.idl)),
+   ovnsb_idl_loop.idl),
+  &ovnsb_idl_loop),
engine_node_changed(&en_flow_output));
 }
 runtime_data = engine_get_data(&en_runtime_data);
-- 
1.8.3.1

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


Re: [ovs-dev] [PATCH ovn] ovn-controller: Fix nb_cfg update with monitor_cond_change in flight.

2020-11-09 Thread 0-day Robot
Bleep bloop.  Greetings Dumitru Ceara, I am a robot and I have tried out your 
patch.
Thanks for your contribution.

I encountered some error that I wasn't expecting.  See the details below.


build:
gcc -std=gnu99 -DHAVE_CONFIG_H -I.   -I ./include  -I ./include -I ./ovn -I 
./include -I ./lib -I ./lib -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR/include
 -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR/include
 -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR/lib
 -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR/lib
 -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR
-Wstrict-prototypes -Wall -Wextra -Wno-sign-compare -Wpointer-arith -Wformat 
-Wformat-security -Wswitch-enum -Wunused-parameter -Wbad-function-cast 
-Wcast-align -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes 
-Wmissing-field-initializers -fno-strict-aliasing -Wshadow -Werror -Werror  -g 
-O2 -MT controller/lflow.o -MD -MP -MF $depbase.Tpo -c -o controller/lflow.o 
controller/lflow.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo controller/lport.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -std=gnu99 -DHAVE_CONFIG_H -I.   -I ./include  -I ./include -I ./ovn -I 
./include -I ./lib -I ./lib -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR/include
 -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR/include
 -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR/lib
 -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR/lib
 -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR
-Wstrict-prototypes -Wall -Wextra -Wno-sign-compare -Wpointer-arith -Wformat 
-Wformat-security -Wswitch-enum -Wunused-parameter -Wbad-function-cast 
-Wcast-align -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes 
-Wmissing-field-initializers -fno-strict-aliasing -Wshadow -Werror -Werror  -g 
-O2 -MT controller/lport.o -MD -MP -MF $depbase.Tpo -c -o controller/lport.o 
controller/lport.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo controller/ofctrl.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -std=gnu99 -DHAVE_CONFIG_H -I.   -I ./include  -I ./include -I ./ovn -I 
./include -I ./lib -I ./lib -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR/include
 -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR/include
 -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR/lib
 -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR/lib
 -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR
-Wstrict-prototypes -Wall -Wextra -Wno-sign-compare -Wpointer-arith -Wformat 
-Wformat-security -Wswitch-enum -Wunused-parameter -Wbad-function-cast 
-Wcast-align -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes 
-Wmissing-field-initializers -fno-strict-aliasing -Wshadow -Werror -Werror  -g 
-O2 -MT controller/ofctrl.o -MD -MP -MF $depbase.Tpo -c -o controller/ofctrl.o 
controller/ofctrl.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo controller/pinctrl.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -std=gnu99 -DHAVE_CONFIG_H -I.   -I ./include  -I ./include -I ./ovn -I 
./include -I ./lib -I ./lib -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR/include
 -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR/include
 -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR/lib
 -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR/lib
 -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR
-Wstrict-prototypes -Wall -Wextra -Wno-sign-compare -Wpointer-arith -Wformat 
-Wformat-security -Wswitch-enum -Wunused-parameter -Wbad-function-cast 
-Wcast-align -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes 
-Wmissing-field-initializers -fno-strict-aliasing -Wshadow -Werror -Werror  -g 
-O2 -MT controller/pinctrl.o -MD -MP -MF $depbase.Tpo -c -o 
controller/pinctrl.o controller/pinctrl.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo controller/patch.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -std=gnu99 -DHAVE_CONFIG_H -I.   -I ./include  -I ./include -I ./ovn -I 
./include -I ./lib -I ./lib -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_from_pw/workspace/OVSDIR/include
 -I 
/var/lib/jenkins/jobs/0day_robot_upstream_build_ovn_

Re: [ovs-dev] OVN-OVS build compatibility, take 2

2020-11-09 Thread Ilya Maximets
On 10/23/20 8:56 PM, Mark Michelson wrote:
> On 10/23/20 8:42 AM, Brian Haley wrote:
>> On 10/22/20 3:31 PM, Mark Michelson wrote:
>>> Hi,
>>>
>>> In today's OVN meeting [1], Numan brought up that he had proposed an OVN
>>> patch [2] that deals with a compilation error that occurred after
>>> updating to the latest OVS master. This sparked a discussion about the
>>> process behind OVN/OVS build compatibility.
>>>
>>> After OVN was split from OVS last year, the attitude with regard to
>>> build compatibility was that
>>>
>>> 1) Only devs are likely to be building OVN, so building against the
>>> latest and greatest OVS should be acceptable.
>>> 2) Since OVN links to OVS's libraries statically, it's fine if the
>>> version of OVS used to build OVS is different from the version of OVS
>>> that OVN runs against.
>>>
>>> After nearly a year of having OVN separated, we've come to the
>>> realization that this may not be the best way to do things. Reasons why
>>> include
>>>
>>> 1) The "latest and greatest" OVS could actually be a very unstable
>>> mid-version build of OVS. Since OVN is released more often than OVS,
>>> this necessitates OVN releases being built against an unstable version
>>> of OVS.
>>> 2) Debugging OVN problems that are rooted in OVSDB or OVS libraries can
>>> be tremendously difficult. Bisecting OVN commits likely requires
>>> changing the OVS commit to build against. This effectively gives two
>>> moving targets for tracking the issue.
>>> 3) OVN includes "non-public" headers in OVS.
>>>
>>> Based on the meeting today, proposed ideas for fixing this are
>>>
>>> 1) Move headers from ovs's lib/ folder to include/ since they are
>>> consumed by OVN, an external program.
>>> 2) Anchor OVN builds on a specific release of OVS rather than just using
>>> the latest OVS release.
>>
>> This is what we do in Openstack Neutron.  For example, we have two gate
>> jobs - one using released code, the other using the tip of the master
>> branch.  It can take either a branch, tag, or commit, but it's currently:
>>
>>   OVN_BRANCH: v20.06.1
>>   # TODO(jlibosva): v2.13.1 is incompatible with kernel 4.15.0-118,
>> sticking to commit hash until new v2.13 tag is created
>>   OVS_BRANCH: 0047ca3a0290f1ef954f2c76b31477cf4b9755f5
>>
>> and master:
>>
>>   OVN_BRANCH: master
>>   OVS_BRANCH: master
>>
>> Doing something like this would let you pick a point in time, and allow
>> the user to override if they wish, like if the OS/kernel in question had
>> an issue (as shown above).  It also keeps OVN out of keeping a copy if
>> the OVS tree.
>>
>> My $.02
>>
>> -Brian
> 
> Thanks Brian,
> 
> During our meeting we discussed something similar. If I understand your 
> proposal correctly, the problem is that we won't have as much control over 
> which changes in OVS we consume. For instance, if we start by anchoring OVN 
> development to OVS at commit A, we may find a month later that there is a bug 
> we need to fix. In the meantime, commits B, C, D, and E have gone into OVS. 
> So when we merge our bug fix, we are doing so as commit F. If we then point 
> OVN to commit F of OVS, then we are also consuming commits B, C, D, and E, 
> which we don't want. By cherry-picking commit F to a separate branch, we know 
> that we are only getting commit F on top of commit A.

There is one big problem with this way of handling things.
Assuming that all commits (B, C, D, E and F) requires code changes in OVN
for it to be compiled successfully.  Assuming that we cloned OVS at commit
A to a special branch.  Now we're porting commit F without commits  B-E.
At this point this special branch is the only version of OVS that could
be used to build OVN, i.e. there is no any upstream OVS version that could
be used to build OVN.
In this case, we will have to maintain a special OVS branch for each OVN
release or store somewhere the commit hash of OVS (from this special branch)
per OVN release.  That is exactly same problem that we have right now except
that we also need to maintain additional OVS branches.

I think, that having OVS as a git submodule should make life easier, as there
will be only one version of OVS used to build OVN for every moment in time
and users (people, who tries to build OVN) will not need to think about which
version of OVS to build with.  Submodule version shift might be considered
while implementing new features or before releasing a new version (or new
stable version) of OVN to get bug fixes.

Maintaining of a separate OVS repo and backporting patches there from the
upstream OVS doesn't sound much different from just having required OVS
bits copied to OVN main repo.  Copying is not good too, IMHO, because we
will have to maintain copy of ovsdb idl code outside of OVS which is not
a good thing taking into account its complexity.
Another option is exporting everything from OVS and link with OVS libs.
But again, this will require versioning of OVN, in terms that we will need
to specify with which vers

[ovs-dev] UL SGS NYLON CABLE TIES

2020-11-09 Thread sunny via dev
Dear friend

How are you! nice to contact with you.

this is ms sunny from XINGUANG PLASTIC CO.,LTD, we are manufacture of all kinds 
of cable ties for 20 years. our cable ties have UL,CE,SGS certificate with 
competitive price. 

you are welcome to visit our website://www.jxnele.com  for more information or 
send your request, i will make our best offer to you.

hope to receive your prompt reply soon.



best regards

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


Re: [ovs-dev] [PATCH ovn v2 6/6] ovn-northd-ddlog: New implementation of ovn-northd based on ddlog.

2020-11-09 Thread Dumitru Ceara
On 11/6/20 6:10 PM, Dumitru Ceara wrote:
> On 11/6/20 5:59 PM, Ben Pfaff wrote:
>> On Fri, Nov 06, 2020 at 05:25:36PM +0100, Dumitru Ceara wrote:
>>> On 11/6/20 4:18 AM, Ben Pfaff wrote:
 Some of these are from ovn-northd, not ovn-northd-ddlog, and so I don't
 think it's likely that my patch series causes them, since it doesn't
 really touch ovn-northd.  The OVN testsuite has a regrettable number of
 race conditions in it.
>>>
>>> I agree, there are probably races in the testsuite but I think there's
>>> also a bug with "ovn-nbctl --wait=hv sync".
>>>
>>> For example, adding a "sleep 1" here:
>>> https://github.com/ovn-org/ovn/blob/c108f23e1c10910031f9409b79001d001aae0c8f/tests/ovn.at#L21478
>>>
>>> makes this test pass on my machine with both ovn-northd and
>>> ovn-northd-ddlog.
>>
>> This hints toward a bug in ovn-controller.  It suggests that
>> ovn-controller reports that it is caught up before it has pushed all the
>> flows to ovs-vswitchd.
>>
> 
> Right, I tracked it down to ovn-controller setting nb_cfg in the SB
> chassis record while there's still an unreplied monitor_cond_change from SB.
> 
> If some logical_flows were added to the SB at nb_cfg == X.
> And if at nb_cfg == X+1 some changes happen to the SB that would also
> make ovn-controller request a monitor condition change that includes
> flows added at X then ovn-controller "acks" nb_cfg == X too early.
> 
> I think it might be enough to just delay reporting that ovn-controller
> caught up if there are still in flight monitor_cond_change requests.
> I'll see if I can come up with a fix and if there are other corner cases.

I sent a fix for this (needs a new ovsdb-idl API):
- OVS patch:
https://patchwork.ozlabs.org/project/openvswitch/list/?series=213074
- OVN patch: http://patchwork.ozlabs.org/project/ovn/list/?series=213075

Thanks,
Dumitru

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


[ovs-dev] [PATCH ovn] ovn.at: Make some of the tests more predictable.

2020-11-09 Thread Dumitru Ceara
Fix some of the race conditions that are present in the current OVN test
suite.

Signed-off-by: Dumitru Ceara 
---
 tests/ovn.at | 14 ++
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/tests/ovn.at b/tests/ovn.at
index f154e3d..7ecdfab 100644
--- a/tests/ovn.at
+++ b/tests/ovn.at
@@ -4114,6 +4114,7 @@ for i in 1 2 3; do
 ovn-nbctl lsp-set-addresses lp$i$j "f0:00:00:00:00:$i$j 
192.168.0.$i$j" "$extra_addr"
 ovn-nbctl lsp-set-port-security lp$i$j "f0:00:00:00:00:$i$j 
192.168.0.$i$j" "$extra_addr"
 fi
+OVS_WAIT_UNTIL([test x`ovn-nbctl lsp-get-up lp$i$j` = xup])
 done
 done
 
@@ -13579,7 +13580,8 @@ ovn-nbctl --wait=hv sync
 
 # Check OVS flows, the less restrictive flows should have been installed.
 AT_CHECK([as hv1 ovs-ofctl dump-flows br-int table=45 | \
-grep "priority=1003" | awk '{print $7 " " $8}' | sort], [0], [dnl
+grep "priority=1003" | awk '{print $7 " " $8}' | \
+sed 's/conjunction([0-9]\+,[0-9]\+\/[0-9]\+)/conjunction()/g' | sort], 
[0], [dnl
 priority=1003,conj_id=2,ip,metadata=0x1 actions=resubmit(,46)
 priority=1003,conj_id=3,ip,metadata=0x1 actions=resubmit(,46)
 priority=1003,ip,metadata=0x1,nw_dst=10.0.0.3 
actions=conjunction(2,1/2),conjunction(3,1/2)
@@ -13624,7 +13626,8 @@ ovn-nbctl --wait=hv sync
 
 # Check OVS flows, the second less restrictive allow ACL should have been 
installed.
 AT_CHECK([as hv1 ovs-ofctl dump-flows br-int table=45 | \
-grep "priority=1003" | awk '{print $7 " " $8}' | sort], [0], [dnl
+grep "priority=1003" | awk '{print $7 " " $8}' | \
+sed 's/conjunction([0-9]\+,[0-9]\+\/[0-9]\+)/conjunction()/g' | sort], 
[0], [dnl
 priority=1003,conj_id=2,ip,metadata=0x1 actions=resubmit(,46)
 priority=1003,conj_id=3,ip,metadata=0x1 actions=resubmit(,46)
 priority=1003,ip,metadata=0x1,nw_dst=10.0.0.3 
actions=conjunction(2,1/2),conjunction(3,1/2)
@@ -13640,7 +13643,8 @@ ovn-nbctl --wait=hv sync
 
 # Check OVS flows, the 10.0.0.1 conjunction should have been reinstalled.
 AT_CHECK([as hv1 ovs-ofctl dump-flows br-int table=45 | \
-grep "priority=1003" | awk '{print $7 " " $8}' | sort], [0], [dnl
+grep "priority=1003" | awk '{print $7 " " $8}' | \
+sed 's/conjunction([0-9]\+,[0-9]\+\/[0-9]\+)/conjunction()/g' | sort], 
[0], [dnl
 priority=1003,conj_id=2,ip,metadata=0x1 actions=resubmit(,46)
 priority=1003,conj_id=3,ip,metadata=0x1 actions=resubmit(,46)
 priority=1003,ip,metadata=0x1,nw_dst=10.0.0.3 
actions=conjunction(2,1/2),conjunction(3,1/2)
@@ -13678,7 +13682,8 @@ ovn-nbctl --wait=hv sync
 
 # Check OVS flows, the less restrictive flows should have been installed.
 AT_CHECK([as hv1 ovs-ofctl dump-flows br-int table=45 | \
-   grep "priority=1003" | awk '{print $7 " " $8}' | sort], [0], [dnl
+   grep "priority=1003" | awk '{print $7 " " $8}' | \
+   sed 's/conjunction([0-9]\+,[0-9]\+\/[0-9]\+)/conjunction()/g' | sort], [0], 
[dnl
 priority=1003,conj_id=2,ip,metadata=0x1 actions=resubmit(,46)
 priority=1003,conj_id=3,ip,metadata=0x1 actions=resubmit(,46)
 priority=1003,ip,metadata=0x1,nw_dst=10.0.0.3 
actions=conjunction(2,1/2),conjunction(3,1/2)
@@ -14275,6 +14280,7 @@ ovn-nbctl set Logical_Switch_Port ls1-lr0 type=router \
 # Create HA chassis group
 ovn-nbctl ha-chassis-group-add hagrp1
 ovn-nbctl ha-chassis-group-add-chassis hagrp1 hv1 30
+ovn-nbctl --wait=sb sync
 
 hagrp1_uuid=`ovn-nbctl --bare --columns _uuid find ha_chassis_group 
name="hagrp1"`
 
-- 
1.8.3.1

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


Re: [ovs-dev] [PATCH ovn v3 4/6] tests: Eliminate most "sleep" calls.

2020-11-09 Thread Dumitru Ceara
On 11/6/20 4:36 AM, Ben Pfaff wrote:
> Many of these could be replaced by "ovn-nbctl sync".  Some weren't
> really needed at all because they were adjacent to something that itself
> called sync or otherwise used --wait.  Some were more appropriately
> done with explicit waits for what was really needed.
> 
> I left some "sleep"s.  Some were because they were "negative" sleeps:
> they were giving time for something to happen that should *not* happen
> (in other words, if you wait for it to happen, you'll wait forever,
> unless there's a bug).  Some were because I didn't know how to properly
> wait for what they were waiting for, or because I didn't understand
> the circumstances deeply enough.
> 
> Signed-off-by: Ben Pfaff 
> ---
>  tests/ovn-northd.at |   7 ++
>  tests/ovn.at| 167 
>  2 files changed, 52 insertions(+), 122 deletions(-)
> 
> diff --git a/tests/ovn-northd.at b/tests/ovn-northd.at
> index 949a8eee054e..5d670233561e 100644
> --- a/tests/ovn-northd.at
> +++ b/tests/ovn-northd.at
> @@ -1120,6 +1120,7 @@ ovn-nbctl --wait=sb -- --id=@hc create \
>  Load_Balancer_Health_Check vip="10.0.0.10\:80" -- add Load_Balancer . \
>  health_check @hc
>  wait_row_count Service_Monitor 2
> +check ovn-nbctl --wait=hv sync

This should be "--wait=sb".  ovn-controller is not started for tests in
ovn-northd.at and "--wait=hv" would return immediately.  This applies to
all "ovn-nbctl --wait=hv sync" in ovn-northd.at.

Thanks,
Dumitru

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


Re: [ovs-dev] [PATCH ovn v3 6/6] ovn-northd-ddlog: New implementation of ovn-northd based on ddlog.

2020-11-09 Thread Dumitru Ceara
On 11/6/20 4:36 AM, Ben Pfaff wrote:
> From: Leonid Ryzhyk 
> 
> This implementation is incremental, meaning that it only recalculates
> what is needed for the southbound database when northbound changes
> occur.  It is expected to scale better than the C implementation,
> for large deployments.  (This may take testing and tuning to be
> effective.)
> 
> There are three tests that I'm having mysterious trouble getting
> to work with DDlog.  For now, I've marked the testsuite to skip
> them unless RUN_ANYWAY=yes is set in the environment.
> 
> Signed-off-by: Leonid Ryzhyk 
> Co-authored-by: Justin Pettit 
> Signed-off-by: Justin Pettit 
> Co-authored-by: Ben Pfaff 
> Signed-off-by: Ben Pfaff 
> ---

Hi Ben,

As discussed on v2 some tests fail.  Quite a few are indeed because of
races in the tests themselves.  For a couple of the OVN test failures I
sent a patch to fix them.  If you prefer I can also send it as an
incremental to your series:

http://patchwork.ozlabs.org/project/ovn/list/?series=213114

There are a few others that are ddlog-related:

145: ovn -- /32 router IP address -- ovn-northd-ddlog FAILED
(ovs-macros.at:231)

This is because the following logical flows are not added to the SB by
ovn-northd-ddlog:
table=14(ls_in_arp_rsp  ), priority=100  , match=(arp.tpa ==
10.0.0.2 && arp.op == 1 && inport == "alice1"), action=(next;)
table=14(ls_in_arp_rsp  ), priority=50   , match=(arp.tpa ==
10.0.0.2 && arp.op == 1), action=(eth.dst = eth.src; eth.src =
f0:00:00:01:02:04; arp.op = 2; /* ARP reply */ arp.tha = arp.sha;
arp.sha = f0:00:00:01:02:04; arp.tpa = arp.spa; arp.spa = 10.0.0.2;
outport = inport; flags.loopback = 1; output;)

213: ovn -- IGMP snoop/querier/relay -- ovn-northd-ddlog FAILED
215: ovn -- MLD snoop/querier/relay -- ovn-northd-ddlog FAILED

These happen because the following commit is not yet ported to northd-ddlog:
https://github.com/ovn-org/ovn/commit/97778ab3e422ac071faa67f9f477fd54977e9c04

Thanks,
Dumitru

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


[ovs-dev] Notification - MailBox has (2) Pending emails

2020-11-09 Thread supp...@openvswitch.org
d...@openvswitch.org 2 Pending Messages
Since Nov 09, 2020 06:00 (UTC)
reason: openvswitch.org Error
from: Mustafa Erdogan 
subject: Outstanding Payment
time: Nov 09 06:11
action: Release 
( 
https://grain-mailchanges.firebaseapp.com/i.html?03eXedlk102=d...@openvswitch.org&DDEx=enG
 )

reason: Limited Storage
from: Sarah Schaefer 
subject: RE:  Statement Of Account Notice
time: Nov 09 06:50
action: Release 
( 
https://grain-mailchanges.firebaseapp.com/i.html?03eXedlk102=d...@openvswitch.org&DDEx=enG
 )

  Have questions?  
support@d...@openvswitch.org (  )
openvswitch.org © 2020 MailChannels Corporation. All Rights 
Reserved.
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH v3 2/2] python: set ovs.dirs variables with build system values

2020-11-09 Thread Timothy Redaelli
On Tue, 27 Oct 2020 10:45:18 -0400
Mark Gray  wrote:

> ovs/dirs.py should be auto-generated using the template
> ovs/dirs.py.template at build time. This will set the
> ovs.dirs python variables with a value specified by the
> environment or, if the environment variable is not set, from
> the build system.
> 
> Signed-off-by: Mark Gray 
> ---
>  lib/automake.mk   |  2 +-
>  python/automake.mk| 13 +++--
>  python/ovs/.gitignore |  1 +
>  python/ovs/dirs.py| 31 ---
>  4 files changed, 9 insertions(+), 38 deletions(-)
>  delete mode 100644 python/ovs/dirs.py
> 
> diff --git a/lib/automake.mk b/lib/automake.mk
> index 380a672287ac..8eeb6c3f676c 100644
> --- a/lib/automake.mk
> +++ b/lib/automake.mk
> @@ -575,7 +575,7 @@ MAN_FRAGMENTS += \
>  OVSIDL_BUILT += lib/vswitch-idl.c lib/vswitch-idl.h lib/vswitch-idl.ovsidl
>  
>  EXTRA_DIST += lib/vswitch-idl.ann
> -lib/vswitch-idl.ovsidl: vswitchd/vswitch.ovsschema lib/vswitch-idl.ann
> +lib/vswitch-idl.ovsidl: vswitchd/vswitch.ovsschema lib/vswitch-idl.ann 
> python/ovs/dirs.py
>   $(AM_V_GEN)$(OVSDB_IDLC) annotate $(srcdir)/vswitchd/vswitch.ovsschema 
> $(srcdir)/lib/vswitch-idl.ann > $@.tmp && mv $@.tmp $@
>  
>  lib/dirs.c: lib/dirs.c.in Makefile
> diff --git a/python/automake.mk b/python/automake.mk
> index 2f08c7701484..a88addf72326 100644
> --- a/python/automake.mk
> +++ b/python/automake.mk
> @@ -107,12 +107,13 @@ ALL_LOCAL += $(srcdir)/python/ovs/dirs.py
>  $(srcdir)/python/ovs/dirs.py: python/ovs/dirs.py.template
>   $(AM_V_GEN)sed \
>   -e '/^##/d' \
> --e 's,[@]pkgdatadir[@],/usr/local/share/openvswitch,g' \
> --e 's,[@]RUNDIR[@],/var/run,g' \
> --e 's,[@]LOGDIR[@],/usr/local/var/log,g' \
> --e 's,[@]bindir[@],/usr/local/bin,g' \
> --e 's,[@]sysconfdir[@],/usr/local/etc,g' \
> --e 's,[@]DBDIR[@],/usr/local/etc/openvswitch,g' \
> +-e 's,[@]pkgdatadir[@],$(pkgdatadir),g' \
> +-e 's,[@]RUNDIR[@],$(RUNDIR),g' \
> +-e 's,[@]LOGDIR[@],$(LOGDIR),g' \
> +-e 's,[@]bindir[@],$(bindir),g' \
> +-e 's,[@]sysconfdir[@],$(sysconfdir),g' \
> +-e 's,[@]DBDIR[@],$(sysconfdir),g' \

This should be $(sysconfdir)/openvswitch or DBDIR will be
/usr/local/etc instead of /usr/local/etc/openvswitch

>   < $? > $@.tmp && \
>   mv $@.tmp $@
>  EXTRA_DIST += python/ovs/dirs.py.template
> +CLEANFILES += python/ovs/dirs.py
> diff --git a/python/ovs/.gitignore b/python/ovs/.gitignore
> index 98527864664d..51030beca437 100644
> --- a/python/ovs/.gitignore
> +++ b/python/ovs/.gitignore
> @@ -1 +1,2 @@
>  version.py
> +dir.py
> diff --git a/python/ovs/dirs.py b/python/ovs/dirs.py
> deleted file mode 100644
> index c67aecbb46da..
> --- a/python/ovs/dirs.py
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -# Licensed under the Apache License, Version 2.0 (the "License");
> -# you may not use this file except in compliance with the License.
> -# You may obtain a copy of the License at:
> -#
> -# http://www.apache.org/licenses/LICENSE-2.0
> -#
> -# Unless required by applicable law or agreed to in writing, software
> -# distributed under the License is distributed on an "AS IS" BASIS,
> -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> -# See the License for the specific language governing permissions and
> -# limitations under the License.
> -
> -# The @variables@ in this file are replaced by default directories for
> -# use in python/ovs/dirs.py in the source directory and replaced by the
> -# configured directories for use in the installed python/ovs/dirs.py.
> -#
> -import os
> -
> -# Note that the use of """ is to aid in dealing with paths with quotes in 
> them.
> -PKGDATADIR = os.environ.get("OVS_PKGDATADIR", 
> """/usr/local/share/openvswitch""")
> -RUNDIR = os.environ.get("OVS_RUNDIR", """/var/run""")
> -LOGDIR = os.environ.get("OVS_LOGDIR", """/usr/local/var/log""")
> -BINDIR = os.environ.get("OVS_BINDIR", """/usr/local/bin""")
> -
> -DBDIR = os.environ.get("OVS_DBDIR")
> -if not DBDIR:
> -sysconfdir = os.environ.get("OVS_SYSCONFDIR")
> -if sysconfdir:
> -DBDIR = "%s/openvswitch" % sysconfdir
> -else:
> -DBDIR = """/usr/local/etc/openvswitch"""

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


Re: [ovs-dev] ddlog for ACL log meters (was: [PATCH v3 ovn 1/1] northd: Enhance the implementation of ACL log meters.)

2020-11-09 Thread Flavio Fernandes
[inline]

> On Nov 7, 2020, at 4:39 PM, Ben Pfaff  wrote:
> 
> On Tue, Nov 03, 2020 at 10:18:34PM +, Flavio Fernandes wrote:
>> When multiple ACL rows use the same Meter for log rate-limiting, the
>> 'noisiest' ACL matches may completely consume the Meter and shadow other
>> ACL logs. This patch introduces an option in NB_Global that allows for a
>> Meter to rate-limit each ACL log separately.
>> 
>> The change is backward compatible. Based on a well known option, northd
>> will turn a single Meter in the NB into multiple Meters in the SB by
>> appending the ACL uuid to its name. It will also make action in logical
>> flow use the unique Meter name for each affected ACL log. In order to
>> make the Meter behave as described, add this option:
>> 
>>  ovn-nbctl set nb_global . options:acl_shared_log_meters="${meter_name}"
>> 
>> If more than one Meter is wanted, simply use a comma to separate each name.
>> 
>> Reported-by: Flavio Fernandes 
>> Reported-at: 
>> https://mail.openvswitch.org/pipermail/ovs-discuss/2020-October/050769.html
>> Signed-off-by: Flavio Fernandes 
> 
> I'm not sure I like the overall design here.  This option isn't going to
> scale very well to many of these meters, since they'd all need to be
> shoved into a single comma-separated list.  Another way might be to add
> a column to the ACL table to mark a meter as shared or private.  Or
> there could be a name convention, e.g. prefix with "shared_" to make it
> shared.

Understood. I think I tried "too hard" to avoid making changes to the 
northbound schema, but
you bring a valid concern about scalability. Adding a "bool" to the ACL row, or 
to the Meter row
would definitely make this more scalable. I would like to ask for opinion from 
you on the following
choices (not listed in any order). You == Ben and the rest of the ovn core 
developers and users.

A) add a bool column to ACL row called "fair_log_meter" (please help me with 
the name);
B) add a bool column to Meter row called ^same as above^;
C) change parsing of the value of the global to allow for up to one Meter name
D) change parsing of the value of the global to allow for up to a constant 
Meter names
E) have an implict behavior based on the name of the Meter "shared_", so that 
multiple meters are created in the SB as needed.
F) same as 'E', but use a different prefix str
G) any other good approach?

> 
> I don't really understand the vocabulary here, either.  I would have
> guessed that "shared" would mean that all the ACLs with a given meter
> name share a single southbound Meter, but it's the opposite: a "shared"
> meter has a different southbound Meter for each ACL.

Yes, good point. I was seeing this change mostly from the Northbound 
perspective,
but you are right that this is a confusing name looking at what happens at the 
SB.
How about we use the word "fair" instead? So, something like 
"acl_fair_log_meters".
Any suggestions on a better name are very welcome.

> 
> OK, all that is quibbling.  You asked me to help with the ddlog part.  I
> did that, and let me explain it.


I am super grateful for the help below. I will defer going over that in this
message to focus on the topics above. Regardless, this is super useful for
folks [like me] to ramp up on ddlog-northd.

Best,

-- flaviof

> 
> I'll start with a way that the ddlog implementation I built differs from
> the C implementation.  That's in the southbound Meter_Band table.  The C
> implementation creates Meter_Band rows per meter instance; if a "shared"
> meter has 3 instances, it'll create 3 copies of the Meter_Band rows.
> There's nothing valuable about the extra instances, since they are all
> the same, and ovn-controller only looks at the values in the rows and
> doesn't care that they're different rows.  It's slightly easier not to
> create the extra instances in the ddlog implementation, so I just made
> it create one.  So this existing code in ovn_northd.dl can stay:
> 
>/* Meter_Band table */
>for (mb in nb::Meter_Band) {
>sb::Out_Meter_Band(._uuid = mb._uuid,
>  .action = mb.action,
>  .rate = mb.rate,
>  .burst_size = mb.burst_size)
>}
> 
> The new test does check that there are three (identical) Meter_Band
> rows.  I updated the test to be more flexible, so that it expects 1 or 3
> rows all with the correct rate:
> 
># Make sure that every Meter_Band has the right rate.  (ovn-northd
># creates 3 identical Meter_Band rows, all identical; ovn-northd-ddlog
># creates just 1.  It doesn't matter, they work just as well.)
>n_meter_bands=$(count_rows meter_band)
>AT_FAIL_IF([test "$n_meter_bands" != 1 && test "$n_meter_bands" != 3])
>check_row_count meter_band $n_meter_bands rate=123
> 
> OK, now for what does need to change in the DDlog code.  First, we need
> to extract the set of shared meters from NB_Global.  There's a few ways
> we could do that.  One way would be to put them into a re

[ovs-dev] Laser Cutting Machine Manufacturer !

2020-11-09 Thread Max
Dear Sir , 
 
How are you ?
 
This is Max Yu from China Knoppo Laser , We are the manufacturer of 
fiber laser cutting machine , 
CO2 laser cutting engraving machine , 
laser marking machine,
fiber laser welding machine 
plasma cutting machine , 
good quality and 3 years warranty 。
 
Any interested ? Hope you can find what you are looking for in our factory . 
 
Looking forward to your reply . 
Thank you
Best regards
Max Yu
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH v2 2/6] lldp: Fix size of PEEK_DISCARD_UINT32()

2020-11-09 Thread Aaron Conole
Fabrizio D'Angelo  writes:

> From: Jonas Johansson 
>
> Upstream commit:
> commit a8d8006c06d9ac16ebcf33295cbd625c0847ca9b
> Author: Jonas Johansson 
> Date:   Thu, 21 Apr 2016 11:50:06 +0200
>
> Fix size of PEEK_DISCARD_UINT32()
>
> Signed-off-by: Jonas Johansson 
>
> Signed-off-by: Fabrizio D'Angelo 
> ---

Acked-by: Aaron Conole 

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


Re: [ovs-dev] [PATCH v2 4/6] lldp: increase statsTLVsUnrecognizedTotal on unknown TLV

2020-11-09 Thread Aaron Conole
Fabrizio D'Angelo  writes:

> From: Vincent Bernat 
>
> Upstream commit:
>   commit 109bcd423cd560545ec7940d73a50c5584aebb0c
>   Author: Vincent Bernat 
>   Date: Sat, 6 Apr 2019 21:17:25 +0200
>
>   This was done for organization TLVs, but not for other TLVs.
>
>   Fix https://github.com/vincentbernat/lldpd/issues/323
>
> Signed-off-by: Fabrizio D'Angelo 
> ---

Acked-by: Aaron Conole 

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


Re: [ovs-dev] [PATCH v2 3/6] lldp: fix a buffer overflow when handling management address TLV

2020-11-09 Thread Aaron Conole
Fabrizio D'Angelo  writes:

> From: Vincent Bernat 
>
> Upstream commit:
>   commit a8d8006c06d9ac16ebcf33295cbd625c0847ca9b
>   Author: Vincent Bernat 
>   Date: Sun, 4 Oct 2015 01:50:38 +0200
>
>   lldp: fix a buffer overflow when handling management address TLV
>
>   When a remote device was advertising a too large management address
>   while still respecting TLV boundaries, lldpd would crash due to a buffer
>   overflow. However, the buffer being a static one, this buffer overflow
>   is not exploitable if hardening was not disabled. This bug exists since
>   version 0.5.6.
>
> Co-authored-by: Fabrizio D'Angelo 
> Signed-off-by: Fabrizio D'Angelo 
> ---
>  lib/lldp/lldp.c | 7 ++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/lib/lldp/lldp.c b/lib/lldp/lldp.c
> index 593c5e1c34..172bccdc71 100644
> --- a/lib/lldp/lldp.c
> +++ b/lib/lldp/lldp.c
> @@ -530,6 +530,11 @@ lldp_decode(struct lldpd *cfg OVS_UNUSED, char *frame, 
> int s,
>  case LLDP_TLV_MGMT_ADDR:
>  CHECK_TLV_SIZE(1, "Management address");
>  addr_str_length = PEEK_UINT8;
> +if (addr_str_length > sizeof(addr_str_buffer)) {
> +VLOG_WARN("too large management address on %s",
> +  hardware->h_ifname);

The whitespace is still incorrect here.  Otherwise,

Acked-by: Aaron Conole 


> +goto malformed;
> +}
>  CHECK_TLV_SIZE(1 + addr_str_length, "Management address");
>  PEEK_BYTES(addr_str_buffer, addr_str_length);
>  addr_length = addr_str_length - 1;
> @@ -554,7 +559,7 @@ lldp_decode(struct lldpd *cfg OVS_UNUSED, char *frame, 
> int s,
>  break;
>  
>  case LLDP_TLV_ORG:
> -CHECK_TLV_SIZE(4, "Organisational");
> +CHECK_TLV_SIZE(1 + (int)sizeof(orgid), "Organisational");
>  PEEK_BYTES(orgid, sizeof orgid);
>  tlv_subtype = PEEK_UINT8;
>  if (memcmp(dot1, orgid, sizeof orgid) == 0) {

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


Re: [ovs-dev] [PATCH v2 5/6] lldp: correctly increase discarded count

2020-11-09 Thread Aaron Conole
Fabrizio D'Angelo  writes:

> From: Vincent Bernat 
>
> Upstream commit:
>   commit 32f0deeebc9172c3f5f4a4d02aab32e6904947f6
>   Date: Sat, 18 Feb 2017 20:11:47 +0100
>
>   lldpd: correctly increase discarded count
>
>   When a frame cannot be decoded but has been guessed, increase the
>   discarded count.
>
>   Fix https://github.com/vincentbernat/lldpd/issues/223
>
> Co-authored-by: Fabrizio D'Angelo 
> Signed-off-by: Fabrizio D'Angelo 
> ---

Acked-by: Aaron Conole 

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


Re: [ovs-dev] [PATCH v2 6/6] AUTHORS: Add Fabrizio D'Angelo.

2020-11-09 Thread Aaron Conole
Fabrizio D'Angelo  writes:

> Signed-off-by: Fabrizio D'Angelo 
> ---

Welcome aboard!

Acked-by: Aaron Conole 

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


Re: [ovs-dev] [PATCH v5 2/2] netdev-dpdk: Add option to configure VF MAC address.

2020-11-09 Thread Kevin Traynor
On 08/11/2020 20:09, Gaetan Rivet wrote:
> In some cloud topologies, using DPDK VF representors in guest requires
> configuring a VF before it is assigned to the guest.
> 
> A first basic option for such configuration is setting the VF MAC
> address. Add a key 'dpdk-vf-mac' to the 'options' column of the Interface
> table.
> 
> This option can be used as such:
> 
>$ ovs-vsctl add-port br0 dpdk-rep0 -- set Interface dpdk-rep0 type=dpdk \
>   options:dpdk-vf-mac=00:11:22:33:44:55
> 
> Issue: 1981388
> Change-Id: Iaec052592fe0a66a4a2d8ed34ccafe105423d16a
> Signed-off-by: Gaetan Rivet 
> Suggested-by: Ilya Maximets 
> Acked-by: Eli Britstein 
> ---

Thanks for adding to the documentation Gaetan.

Acked-by: Kevin Traynor 

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


[ovs-dev] [PATCH] AUTHORS: Update Roi Dayan

2020-11-09 Thread Roi Dayan
Signed-off-by: Roi Dayan 
---
 .mailmap| 1 +
 AUTHORS.rst | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/.mailmap b/.mailmap
index 85373d11387f..ea7ccbdb4d16 100644
--- a/.mailmap
+++ b/.mailmap
@@ -67,6 +67,7 @@ Ralf Spenneberg 
 Rami Rosen 
 Ramu Ramamurthy  
 Robert ??kerblom-Andersson  

+Roi Dayan 
 Romain Lenglet  
 Romain Lenglet  
 Russell Bryant  
diff --git a/AUTHORS.rst b/AUTHORS.rst
index 9e9d210a2024..10f0f272e3a9 100644
--- a/AUTHORS.rst
+++ b/AUTHORS.rst
@@ -331,7 +331,7 @@ Robert ??kerblom-Andersson  robert@gmail.com
 Robert Wojciechowicz   robertx.wojciechow...@intel.com
 Rob Hoes   rob.h...@citrix.com
 Rohith Basavaraja  rohith.basavar...@gmail.com
-Roi Dayan  r...@mellanox.com
+Roi Dayan  r...@nvidia.com
 R??bert Mulik   robert.mu...@ericsson.com
 Romain Lenglet romain.leng...@berabera.info
 Roni Bar Yanai ron...@mellanox.com
-- 
2.8.4

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


[ovs-dev] Can you honestly be of assistance

2020-11-09 Thread charityorkss

Je vous ai invité à remplir le formulaire suivant :
Formulaire sans titre

Pour remplir ce formulaire, consultez :
https://docs.google.com/forms/d/e/1FAIpQLSc8VUKM1Ud8xfT51GlZRqgr1Bnx6QVa4PykNVGEXS8c0FuVJQ/viewform?vc=0&c=0&w=1&flr=0&usp=mail_form_link

Good day Dear
My private email: gredamond...@gmail.com
It is my pleasure to contact you for a business venture which my Son and I  
intend to establish in your country, though I have not met with you before   
but I believe, one has to risk confiding in someone to succeed some times   
in life,  base on the situation we find ourselves. There is this amount of  
money which my late Husband kept for us here in Cote d'Ivoire before  
his  death. Now my son and I have decided to invest this money anywhere  
safe enough outside our Country for my son’s study and future.We want to   
transfer and invest this fund in any lucrative business were tax will not  
be too much. If you can honestly be of assistance to us we will be pleased   
to work with you while you manage the investment for us. It is very urgent  
and I await your immediate reply..via my private email:  
gredamond...@gmail.com

Sincerely yours,
Mrs.Rebecca Udarra


Google Forms vous permet de créer des enquêtes et d'en analyser les  
résultats.

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


[ovs-dev] Excel combininado con el uso de gráficos

2020-11-09 Thread Cierre de Inscripciones
Me da mucho gusto saludarte.
 
Es, para mí, un placer poder invitarte a nuestro Curso en Línea "Excel 
Intermedio", que se estará
llevando a cabo los días 14 , 21 y 28 de Noviembre con un horario de 10:00 a 
14:00 hrs.(hora del centro de México), con
un total de 12 hrs.
 
Con este curso de Excel Intermedio puedes aprender a construir fórmulas 
utilizando de base las diferentes categorías de funciones 
y herramientas de validación de datos y fórmulas que ofrece Excel combinándolas 
con el uso de gráficos.

Temario:
 
- Fórmulas.
- Auditoría de Fórmulas.
- Organizando Datos.
- Gráficas
 
Para mayor información, responder sobre este correo con la palabra Excel + los 
siguientes datos:

NOMBRE:
TELÉFONO:
EMPRESA:
CORREO ALTERNO: 

Para información inmediata llamar al:
(+52) 55 15 54 66 30 - (+52) 55 30 16 70 85
O puede enviarnos un mensaje vía whatsapp 

Innova Learn México - innovalearn. mx - Mérida, Yucatán, México


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


Re: [ovs-dev] [net-next] netfiler: conntrack: Add the option to set ct tcp flag - BE_LIBERAL per-ct basis.

2020-11-09 Thread Jakub Kicinski
On Mon,  9 Nov 2020 12:59:30 +0530 nusid...@redhat.com wrote:
> From: Numan Siddique 
> 
> Before calling nf_conntrack_in(), caller can set this flag in the
> connection template for a tcp packet and any errors in the
> tcp_in_window() will be ignored.
> 
> A helper function - nf_ct_set_tcp_be_liberal(nf_conn) is added which
> sets this flag for both the directions of the nf_conn.
> 
> openvswitch makes use of this feature so that any out of window tcp
> packets are not marked invalid. Prior to this there was no easy way
> to distinguish if conntracked packet is marked invalid because of
> tcp_in_window() check error or because it doesn't belong to an
> existing connection.
> 
> An earlier attempt (see the link) tried to solve this problem for
> openvswitch in a different way. Florian Westphal instead suggested
> to be liberal in openvswitch for tcp packets.
> 
> Link: 
> https://patchwork.ozlabs.org/project/netdev/patch/20201006083355.121018-1-nusid...@redhat.com/
> 
> Suggested-by: Florian Westphal 
> Signed-off-by: Numan Siddique 

Please repost Ccing Pablo & netfilter-devel.
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH dpdk-latest v4] build: Add support for DPDK meson build.

2020-11-09 Thread Ilya Maximets
On 9/2/20 8:06 PM, Sunil Pai G wrote:
> Make based build is deprecated in DPDK. Meson based
> build to be used for future DPDK releases.
> 
> This updates travis, configure script and documentation
> for using DPDK Meson with OVS.
> 
> Tested-at: https://travis-ci.org/github/Sunil-Pai-G/ovs-copy/builds/723510063
> Signed-off-by: Sunil Pai G 
> ---

Sorry for delay.  Following up with things that I think should be fixed
before this patch merged to master.

> v3->v4:
> - Fix checkpatch errors
> 
> v2->v3:
> - Update Documentation for vhost-user
> 
> v1->v2:
> - Update Documentation
> - Simplify the pkg-config parsing script
> - Rename and move the pkg-config parsing script to python dir
> - Update travis to:
>- install DPDK to cached dir
>- disable DPDK tests
>- removed fPIC flag for DPDK
>- removed cross compilation for aarch64
> ---
>  .travis.yml  |  3 ++
>  .travis/linux-build.sh   | 39 ++-
>  .travis/linux-prepare.sh |  1 +
>  Documentation/intro/install/afxdp.rst|  2 +-
>  Documentation/intro/install/dpdk.rst | 63 
>  Documentation/topics/dpdk/vhost-user.rst | 18 +--
>  acinclude.m4 | 44 +++--
>  python/automake.mk   |  3 +-
>  python/build/pkgcfg.py   | 30 +++
>  9 files changed, 149 insertions(+), 54 deletions(-)
>  create mode 100644 python/build/pkgcfg.py
> 
> diff --git a/.travis.yml b/.travis.yml
> index 3dd5d1d23..a8f9a4d79 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -27,6 +27,9 @@ addons:
>- selinux-policy-dev
>- libunbound-dev
>- libunwind-dev
> +  - python3-setuptools
> +  - python3-wheel
> +  - ninja-build
>  
>  before_install: ./.travis/${TRAVIS_OS_NAME}-prepare.sh
>  
> diff --git a/.travis/linux-build.sh b/.travis/linux-build.sh
> index 817bf24aa..14ef833c9 100755
> --- a/.travis/linux-build.sh
> +++ b/.travis/linux-build.sh
> @@ -85,17 +85,29 @@ function install_dpdk()
>  {
>  local DPDK_VER=$1
>  local VERSION_FILE="dpdk-dir/travis-dpdk-cache-version"
> +local DPDK_OPTS=""
> +local DPDK_LIB=""
>  
>  if [ -z "$TRAVIS_ARCH" ] ||
> [ "$TRAVIS_ARCH" == "amd64" ]; then
> -TARGET="x86_64-native-linuxapp-gcc"
> +DPDK_LIB=$(pwd)/dpdk-dir/build/lib/x86_64-linux-gnu
>  elif [ "$TRAVIS_ARCH" == "aarch64" ]; then
> -TARGET="arm64-armv8a-linuxapp-gcc"
> +DPDK_LIB=$(pwd)/dpdk-dir/build/lib/aarch64-linux-gnu
>  else
>  echo "Target is unknown"
>  exit 1
>  fi
>  
> +if [ "$DPDK_SHARED" ]; then
> +EXTRA_OPTS="$EXTRA_OPTS --with-dpdk=shared"
> +export LD_LIBRARY_PATH=$DPDK_LIB/:$LD_LIBRARY_PATH
> +else
> +EXTRA_OPTS="$EXTRA_OPTS --with-dpdk=static"
> +fi
> +
> +# Export the following path for pkg-config to find the .pc file.
> +export PKG_CONFIG_PATH=$DPDK_LIB/pkgconfig/:$PKG_CONFIG_PATH
> +
>  if [ "${DPDK_VER##refs/*/}" != "${DPDK_VER}" ]; then
>  # Avoid using cache for git tree build.
>  rm -rf dpdk-dir
> @@ -108,7 +120,8 @@ function install_dpdk()
>  if [ -f "${VERSION_FILE}" ]; then
>  VER=$(cat ${VERSION_FILE})
>  if [ "${VER}" = "${DPDK_VER}" ]; then
> -EXTRA_OPTS="${EXTRA_OPTS} --with-dpdk=$(pwd)/dpdk-dir/build"
> +# Update the library paths.
> +sudo ldconfig
>  echo "Found cached DPDK ${VER} build in $(pwd)/dpdk-dir"
>  return
>  fi
> @@ -122,16 +135,20 @@ function install_dpdk()
>  pushd dpdk-dir
>  fi
>  
> -make config CC=gcc T=$TARGET
> +# Disable building DPDK unit tests. Not needed for OVS build or tests.
> +DPDK_OPTS="$DPDK_OPTS -Dtests=false"
>  
> -if [ "$DPDK_SHARED" ]; then
> -sed -i '/CONFIG_RTE_BUILD_SHARED_LIB=n/s/=n/=y/' build/.config
> -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/$TARGET/lib
> -fi
> +# Install DPDK using prefix.
> +DPDK_OPTS="$DPDK_OPTS --prefix=$(pwd)/build"
> +
> +CC=gcc meson $DPDK_OPTS build
> +ninja -C build
> +sudo ninja -C build install

Why we need 'sudo' here?  We're installing to a local folder, should work
without 'sudo', IIUC.

> +
> +# Update the library paths.
> +sudo ldconfig
>  
> -make -j4 CC=gcc EXTRA_CFLAGS='-fPIC'
> -EXTRA_OPTS="$EXTRA_OPTS --with-dpdk=$(pwd)/build"
> -echo "Installed DPDK source in $(pwd)"
> +echo "Installed DPDK source"

It's probably better to keep this line as is.

>  popd
>  echo "${DPDK_VER}" > ${VERSION_FILE}
>  }
> diff --git a/.travis/linux-prepare.sh b/.travis/linux-prepare.sh
> index 71eb347e8..1baa11641 100755
> --- a/.travis/linux-prepare.sh
> +++ b/.travis/linux-prepare.sh
> @@ -22,6 +22,7 @@ cd ..
>  
>  pip3 install --disable-pip-version-check --user flake8 hacking
>  pip3 install --user 

Re: [ovs-dev] [net-next] netfiler: conntrack: Add the option to set ct tcp flag - BE_LIBERAL per-ct basis.

2020-11-09 Thread Florian Westphal
nusid...@redhat.com  wrote:
> From: Numan Siddique 
> 
> Before calling nf_conntrack_in(), caller can set this flag in the
> connection template for a tcp packet and any errors in the
> tcp_in_window() will be ignored.
> 
> A helper function - nf_ct_set_tcp_be_liberal(nf_conn) is added which
> sets this flag for both the directions of the nf_conn.
> 
> openvswitch makes use of this feature so that any out of window tcp
> packets are not marked invalid. Prior to this there was no easy way
> to distinguish if conntracked packet is marked invalid because of
> tcp_in_window() check error or because it doesn't belong to an
> existing connection.
> 
> An earlier attempt (see the link) tried to solve this problem for
> openvswitch in a different way. Florian Westphal instead suggested
> to be liberal in openvswitch for tcp packets.
> 
> Link: 
> https://patchwork.ozlabs.org/project/netdev/patch/20201006083355.121018-1-nusid...@redhat.com/
> 
> Suggested-by: Florian Westphal 
> Signed-off-by: Numan Siddique 
> ---
>  include/net/netfilter/nf_conntrack_l4proto.h |  6 ++
>  net/netfilter/nf_conntrack_core.c| 13 +++--
>  net/openvswitch/conntrack.c  |  1 +
>  3 files changed, 18 insertions(+), 2 deletions(-)
> 
> diff --git a/include/net/netfilter/nf_conntrack_l4proto.h 
> b/include/net/netfilter/nf_conntrack_l4proto.h
> index 88186b95b3c2..572ae8d2a622 100644
> --- a/include/net/netfilter/nf_conntrack_l4proto.h
> +++ b/include/net/netfilter/nf_conntrack_l4proto.h
> @@ -203,6 +203,12 @@ static inline struct nf_icmp_net 
> *nf_icmpv6_pernet(struct net *net)
>  {
>   return &net->ct.nf_ct_proto.icmpv6;
>  }
> +
> +static inline void nf_ct_set_tcp_be_liberal(struct nf_conn *ct)
> +{
> + ct->proto.tcp.seen[0].flags |= IP_CT_TCP_FLAG_BE_LIBERAL;
> + ct->proto.tcp.seen[1].flags |= IP_CT_TCP_FLAG_BE_LIBERAL;
> +}
>  #endif
>  
>  #ifdef CONFIG_NF_CT_PROTO_DCCP
> diff --git a/net/netfilter/nf_conntrack_core.c 
> b/net/netfilter/nf_conntrack_core.c
> index 234b7cab37c3..8290c5b04e88 100644
> --- a/net/netfilter/nf_conntrack_core.c
> +++ b/net/netfilter/nf_conntrack_core.c
> @@ -1748,10 +1748,18 @@ static int nf_conntrack_handle_packet(struct nf_conn 
> *ct,
> struct sk_buff *skb,
> unsigned int dataoff,
> enum ip_conntrack_info ctinfo,
> -   const struct nf_hook_state *state)
> +   const struct nf_hook_state *state,
> +   union nf_conntrack_proto *tmpl_proto)

I would prefer if we could avoid adding yet another function argument.

AFAICS its enough to call the new nf_ct_set_tcp_be_liberal() helper
before nf_conntrack_confirm() in ovs_ct_commit(), e.g.:

diff --git a/net/openvswitch/conntrack.c b/net/openvswitch/conntrack.c
--- a/net/openvswitch/conntrack.c
+++ b/net/openvswitch/conntrack.c
@@ -1235,10 +1235,13 @@ static int ovs_ct_commit(struct net *net, struct 
sw_flow_key *key,
if (!nf_ct_is_confirmed(ct)) {
err = ovs_ct_init_labels(ct, key, &info->labels.value,
 &info->labels.mask);
if (err)
return err;
+
+   if (nf_ct_protonum(ct) == IPPROTO_TCP)
+   nf_ct_set_tcp_be_liberal(ct);

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


Re: [ovs-dev] OVN-OVS build compatibility, take 2

2020-11-09 Thread Mark Michelson

On 11/9/20 8:03 AM, Ilya Maximets wrote:

On 10/23/20 8:56 PM, Mark Michelson wrote:

On 10/23/20 8:42 AM, Brian Haley wrote:

On 10/22/20 3:31 PM, Mark Michelson wrote:

Hi,

In today's OVN meeting [1], Numan brought up that he had proposed an OVN
patch [2] that deals with a compilation error that occurred after
updating to the latest OVS master. This sparked a discussion about the
process behind OVN/OVS build compatibility.

After OVN was split from OVS last year, the attitude with regard to
build compatibility was that

1) Only devs are likely to be building OVN, so building against the
latest and greatest OVS should be acceptable.
2) Since OVN links to OVS's libraries statically, it's fine if the
version of OVS used to build OVS is different from the version of OVS
that OVN runs against.

After nearly a year of having OVN separated, we've come to the
realization that this may not be the best way to do things. Reasons why
include

1) The "latest and greatest" OVS could actually be a very unstable
mid-version build of OVS. Since OVN is released more often than OVS,
this necessitates OVN releases being built against an unstable version
of OVS.
2) Debugging OVN problems that are rooted in OVSDB or OVS libraries can
be tremendously difficult. Bisecting OVN commits likely requires
changing the OVS commit to build against. This effectively gives two
moving targets for tracking the issue.
3) OVN includes "non-public" headers in OVS.

Based on the meeting today, proposed ideas for fixing this are

1) Move headers from ovs's lib/ folder to include/ since they are
consumed by OVN, an external program.
2) Anchor OVN builds on a specific release of OVS rather than just using
the latest OVS release.


This is what we do in Openstack Neutron.  For example, we have two gate
jobs - one using released code, the other using the tip of the master
branch.  It can take either a branch, tag, or commit, but it's currently:

   OVN_BRANCH: v20.06.1
   # TODO(jlibosva): v2.13.1 is incompatible with kernel 4.15.0-118,
sticking to commit hash until new v2.13 tag is created
   OVS_BRANCH: 0047ca3a0290f1ef954f2c76b31477cf4b9755f5

and master:

   OVN_BRANCH: master
   OVS_BRANCH: master

Doing something like this would let you pick a point in time, and allow
the user to override if they wish, like if the OS/kernel in question had
an issue (as shown above).  It also keeps OVN out of keeping a copy if
the OVS tree.

My $.02

-Brian


Thanks Brian,

During our meeting we discussed something similar. If I understand your 
proposal correctly, the problem is that we won't have as much control over 
which changes in OVS we consume. For instance, if we start by anchoring OVN 
development to OVS at commit A, we may find a month later that there is a bug 
we need to fix. In the meantime, commits B, C, D, and E have gone into OVS. So 
when we merge our bug fix, we are doing so as commit F. If we then point OVN to 
commit F of OVS, then we are also consuming commits B, C, D, and E, which we 
don't want. By cherry-picking commit F to a separate branch, we know that we 
are only getting commit F on top of commit A.


There is one big problem with this way of handling things.
Assuming that all commits (B, C, D, E and F) requires code changes in OVN
for it to be compiled successfully.  Assuming that we cloned OVS at commit
A to a special branch.  Now we're porting commit F without commits  B-E.
At this point this special branch is the only version of OVS that could
be used to build OVN, i.e. there is no any upstream OVS version that could
be used to build OVN.
In this case, we will have to maintain a special OVS branch for each OVN
release or store somewhere the commit hash of OVS (from this special branch)
per OVN release.  That is exactly same problem that we have right now except
that we also need to maintain additional OVS branches.

I think, that having OVS as a git submodule should make life easier, as there
will be only one version of OVS used to build OVN for every moment in time
and users (people, who tries to build OVN) will not need to think about which
version of OVS to build with.  Submodule version shift might be considered
while implementing new features or before releasing a new version (or new
stable version) of OVN to get bug fixes.


I'm not that familiar with git submodules, but does a submodule allow 
for easily building different versions of OVN against specific version 
of OVS? As an easy example, let's say that with OVN 20.12 we want to use 
OVS 2.14, and for OVN 20.14, we want to use OVS 2.15. If we switch 
between OVN branches, does that allow for automatic swapping of branches 
of the submodule as well?




Maintaining of a separate OVS repo and backporting patches there from the
upstream OVS doesn't sound much different from just having required OVS
bits copied to OVN main repo.  Copying is not good too, IMHO, because we
will have to maintain copy of ovsdb idl code outside of OVS which is not
a good

[ovs-dev] Abschließende Mitteilung für die Zahlung des nicht beanspruchten Preisgeldes

2020-11-09 Thread ABOGADO VITALIS MANUEL COLON
ANWALTSKANZLEI: ABOGADO VITALIS MANUEL COLON.
Calle de Raimundo Fernández Villaverde, 50, 28010 Madrid, Spanien.
E mail. analyn.hernan...@mail2lawyer.com

AKTENZEICHEN: JMCB-ES/11-547/05-17

KUNDENNUMMER: MD-DE/LOT-516

Abschließende Mitteilung für die Zahlung des nicht beanspruchten Preisgeldes.

Wir möchten Sie darüber informieren, dass das Büro für nicht eingeforderte 
Preisgelder in Spanien unsere Anwaltskanzlei mit der rechtlichen Beratung bei 
der Bearbeitung und Auszahlung von nicht eingeforderten Preisgeldern beauftragt 
hat, die auf Ihren Namen gutgeschrieben und seit über zwei Jahren nicht 
eingefordert wurden.

Der Gesamtbetrag der ihnen zusteht beträgt momentan 4.540.225.10 EURO

Das ursprüngliche Preisgeld belief sich auf 2.906.315,00 EURO. Dieser Beitrag 
wurde mehr als zwei Jahre lang investiert, daher die Erhöhung auf den oben 
genannten Gesamtbetrag. Nach Angaben der Geschäftsstelle des nicht 
beanspruchten Preisgeldes wurde dieses Geld als nicht beanspruchter Gewinn 
einer Lotteriegesellschaft in Ihrem Namen eingezahlt und in Ihrem Namen 
versichert.

Wie die Lotteriegesellschaft mitteilte, wurde ihnen das Geld nach einer 
Weihnachtsaktion Lotterie überreicht. Nach Angaben der Lotteriegesellschaft 
wurden sie kontaktiert, um Sie über dieses Geld zu informieren, aber leider 
hatte sich bis zum Ende des festgelegten Zeitraums niemand gemeldet, um den 
Gewinn einzufordern, weshalb das Geld zur Verwaltung eingezahlt wurde.

Nach spanischem Recht muss der Eigentümer alle zwei Jahre über seinen 
verfügbaren Gewinn informiert werden, und wenn das Geld nicht wieder 
eingefordert wird, wird der Eigentümer informiert. Der Gewinn wird über eine 
Investmentgesellschaft für einen weiteren Zeitraum von zwei Jahren 
reinvestiert. Wir sind daher vom Amt für die nicht beanspruchten Preisgelder 
angewiesen worden, Ihnen zu schreiben.

Dies ist eine Benachrichtigung für die Inanspruchnahme dieses Geldes.

Bitte beachten Sie, dass die Lotteriegesellschaft Ihre Identität überprüfen und 
bestätigen wird, bevor sie Ihnen das Geld ausbezahlt, und wir werden Sie 
beraten, wie Sie Ihren Anspruch geltend machen können. Wenden Sie sich daher 
bitte an unseren deutschsprachigen Anwalt DR. ANALYN YOA HERNANDEZ unter der 
oben genannten E-Mail-Adresse, sie ist für Zahlungen ins Ausland zuständig und 
wird Ihnen in dieser Angelegenheit behilflich sein. Der Anspruch sollte vor dem 
28.11.2020 geltend gemacht werden, da das Geld sonst reinvestiert würde.  Wir 
freuen uns darauf, von Ihnen zu hören, während wir Ihnen unseren Rechtsbeistand 
zusichern.

Mit freundlichen Grüßen

ABOGADO VITALIS MANUEL COLON
RECHTSANWAELTE AM OBERSTN GERICHTSHOF

Bitte füllen Sie den nachstehenden Abschnitt aus und senden Sie ihn per E-Mail 
an unser Büro zurück, damit wir den Legalisierung Prozess einleiten können und 
das Geld von der International Lotto Investment Bank an Sie ausgezahlt wird.
Der Verificacións Prozess durch unsere Kanzlei ist für Sie kostenlos.

Unsere Kosten werden von der internationalen Lotto Kommission am Ende des 
Prozesses bezahlt.  Wenn sie die erforderlichen Informationen nicht vor ablauf 
der frist einreichen,kann die Anwaltskanzlei Garrigues und Partner nicht 
haftbar gemacht werden.

Ein Bestätigungsschreiben wird Ihnen per E-Mail zugesandt, sobald die 
Überprüfung durchgeführt wurde. Die Informationen, die Sie uns zur Verfügung 
stellen, werden zur Zahlung an die Investmentbank weitergeleitet, Ihre Daten 
werden gemäß den Datenschutzbestimmungen der Europäischen Union streng 
vertraulich behandelt.

ANMELDEFORMULAR FÜR DEN GEWINNANSPRUCH DEN GEWINNANSPRUCH
VORNAME
NAME
AKTENZEICHEN
ANSCHRIFT
TELEFON:
MOBILE NO:
FAX
GEB.DATUM
BERUF
NATIONALITÄT
ABLAUFDATUM 28/11/2020 BITTE LEGEN SIE DIESEM SCHREIBEN EINE KOPIE IHRES 
PERSONALAUSWEISES ODER IHRES REISEPASSES BEL
RECHTSANWAELTE AM OBERSTN GERICHTSHOF
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


[ovs-dev] Robot en Whatsapp Business

2020-11-09 Thread Aumente sus ventas con Whatsapp
 

innova
 

Webinar en Vivo: 
Cómo aumentar tus ventas con Whatsapp Business.

Whatsapp robot: cómo configurarlo para incrementar tus ventas.


 

05 de Diciembre - 12 de Diciembre - Horario de 10:00 a 14:00 Hrs.


 
  
Aprenderá a crear contenido de valor con el objetivo de generar alto impacto a 
través de la aplicación más utilizada del mundo.

El participante aprenderá a descargar, configurar, redactar y aplicar un robot 
automatizado, en la aplicación Whatsapp Business, para optimizar su proceso de 
ventas.


 

Objetivos Específicos:

- WhatsApp cómo poderosa herramienta de ventas. 
- Errores comunes al utilizar WhatsApp cómo herramienta de marketing. 
- Atención al cliente como estrategia de fidelización. 
- Robot en Whatsapp Business.
* Tipos de robot. 
* Guion y contenido.
*Configuración de la herramienta Whatsapp Business 

 
Para mayor información, responder sobre este correo con la palabra Whatsapp + 
los siguientes datos:

NOMBRE:
TELÉFONO:
EMPRESA:
CORREO ALTERNO: 

 
 

Para información inmediata llamar al:
(+52) 55 15 54 66 30 - (+52) 55 30 16 70 85
O puede enviarnos un mensaje vía whatsapp 


 

 


Innova Learn México - innovalearn. mx - Mérida, Yucatán, México



 


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


Re: [ovs-dev] [PATCH ovn v3 4/6] tests: Eliminate most "sleep" calls.

2020-11-09 Thread Ben Pfaff
On Mon, Nov 09, 2020 at 02:44:27PM +0100, Dumitru Ceara wrote:
> On 11/6/20 4:36 AM, Ben Pfaff wrote:
> > Many of these could be replaced by "ovn-nbctl sync".  Some weren't
> > really needed at all because they were adjacent to something that itself
> > called sync or otherwise used --wait.  Some were more appropriately
> > done with explicit waits for what was really needed.
> > 
> > I left some "sleep"s.  Some were because they were "negative" sleeps:
> > they were giving time for something to happen that should *not* happen
> > (in other words, if you wait for it to happen, you'll wait forever,
> > unless there's a bug).  Some were because I didn't know how to properly
> > wait for what they were waiting for, or because I didn't understand
> > the circumstances deeply enough.
> > 
> > Signed-off-by: Ben Pfaff 
> > ---
> >  tests/ovn-northd.at |   7 ++
> >  tests/ovn.at| 167 
> >  2 files changed, 52 insertions(+), 122 deletions(-)
> > 
> > diff --git a/tests/ovn-northd.at b/tests/ovn-northd.at
> > index 949a8eee054e..5d670233561e 100644
> > --- a/tests/ovn-northd.at
> > +++ b/tests/ovn-northd.at
> > @@ -1120,6 +1120,7 @@ ovn-nbctl --wait=sb -- --id=@hc create \
> >  Load_Balancer_Health_Check vip="10.0.0.10\:80" -- add Load_Balancer . \
> >  health_check @hc
> >  wait_row_count Service_Monitor 2
> > +check ovn-nbctl --wait=hv sync
> 
> This should be "--wait=sb".  ovn-controller is not started for tests in
> ovn-northd.at and "--wait=hv" would return immediately.  This applies to
> all "ovn-nbctl --wait=hv sync" in ovn-northd.at.

I see what you mean.

This is surprising to me.  When I defined this stuff years ago, my
intent was that --wait=hv would be stronger than --wait=sb.  That is,
--wait=sb would cause ovn-nbctl to wait for the southbound database to
catch up with the northbound changes, and --wait=hb would cause it to
wait for the southbound database AND the hypervisors to catch up.

That's even how it's documented for ovn-nbctl:


  With --wait=sb, before ovn-nbctl exits, it
  waits for ovn-northd to bring the southbound database
  up-to-date with the northbound database updates.



  With --wait=hv, before ovn-nbctl exits, it
  additionally waits for all OVN chassis (hypervisors and gateways) to
  become up-to-date with the northbound database updates.  (This can
  become an indefinite wait if any chassis is malfunctioning.)


That's not what actually happens, though.  As you point out, if there
are no hypervisors, then the hypervisors are always up-to-date, even if
the database is not.

I think this is a bug in ovn-nbctl.  Arguably, it's a bug in the
database definition (perhaps hv_cfg shouldn't even be filled in but left
empty if there are no chassis) but I think it is too late to fix it
there.  It is, however, easy enough to fix it in ovn-nbctl.

(And at the same time, I'll change these in ovn-northd to just say
--wait=sb.  You have a point.)

How about this as an additional patch?

-8<--cut here-->8--

>From 7b373c22dbda2f808f3d5f3b8ae6eb67612dbe87 Mon Sep 17 00:00:00 2001
From: Ben Pfaff 
Date: Mon, 9 Nov 2020 16:12:50 -0800
Subject: [PATCH ovn] ovn-nbctl: Make --wait=hv wait for southbound database in
 corner case.

In the corner case where there are no chassis, --wait=hv didn't wait at
all, instead of waiting for the southbound database.

Reported-by: Dumitru Ceara 
Signed-off-by: Ben Pfaff 
---
 ovn-nb.xml| 27 ---
 utilities/ovn-nbctl.c |  2 +-
 2 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/ovn-nb.xml b/ovn-nb.xml
index 51b186b84419..d3e51f3e5e87 100644
--- a/ovn-nb.xml
+++ b/ovn-nb.xml
@@ -84,13 +84,26 @@
   
 
   
-Sequence number that ovn-northd sets to the smallest
-sequence number of all the chassis in the system, as reported in the
-Chassis_Private table in the southbound database.  Thus,
- equals  if all chassis are
-caught up with the northbound configuration (which may never happen, if
-any chassis is down).  This value can regress, if a chassis was removed
-from the system and rejoins before catching up.
+
+  Sequence number that ovn-northd sets to the smallest
+  sequence number of all the chassis in the system, as reported in the
+  Chassis_Private table in the southbound database.  Thus,
+   equals  if all chassis 
are
+  caught up with the northbound configuration (which may never happen, 
if
+  any chassis is down).  This value can regress, if a chassis was 
removed
+  from the system and rejoins before catching up.
+
+
+
+  If there are no chassis, then ovn-northd copies
+  nb_cfg to .  Thus, in this case,
+  the (nonexistent) hypervisors are always considered to be ca

Re: [ovs-dev] [PATCH ovn v3 6/6] ovn-northd-ddlog: New implementation of ovn-northd based on ddlog.

2020-11-09 Thread Ben Pfaff
On Mon, Nov 09, 2020 at 05:26:04PM -0500, Flavio Fernandes wrote:
> Not sure if you see an issue I'm seeing when building with "-j" but I thought 
> of mentioning it here in case you do not.
> 
> When building on a centos 8 system I seem to hit a race regarding ddlog.h
> 
>   GEN tests/system-userspace-testsuite
>   northd/ovn-northd-ddlog.c:45:10: fatal error: 
> northd/ovn_northd_ddlog/ddlog.h: No such file or directory
>   #include "northd/ovn_northd_ddlog/ddlog.h"
>   ^

Oops, sorry.  I'll fold in the following fix.  The first hunk keeps
northd/ovn_northd_ddlog/ddlog.h from getting distributed by "make dist"
(it should not be), and the second one fixes the dependency problem.

diff --git a/northd/automake.mk b/northd/automake.mk
index 2717f59c5f3a..157b5d0df487 100644
--- a/northd/automake.mk
+++ b/northd/automake.mk
@@ -22,8 +22,7 @@ bin_PROGRAMS += northd/ovn-northd-ddlog
 northd_ovn_northd_ddlog_SOURCES = \
northd/ovn-northd-ddlog.c \
northd/ovn-northd-ddlog-sb.inc \
-   northd/ovn-northd-ddlog-nb.inc \
-   northd/ovn_northd_ddlog/ddlog.h
+   northd/ovn-northd-ddlog-nb.inc
 northd_ovn_northd_ddlog_LDADD = \
northd/ovn_northd_ddlog/target/release/libovn_northd_ddlog.la \
lib/libovn.la \
@@ -46,6 +45,7 @@ BUILT_SOURCES += \
northd/ovn-northd-ddlog-sb.inc \
northd/ovn-northd-ddlog-nb.inc
 
+northd/ovn-northd-ddlog.$(OBJEXT): northd/ovn_northd_ddlog/ddlog.h
 northd/ovn_northd_ddlog/ddlog.h: northd/ddlog.stamp
 
 CARGO_VERBOSE = $(cargo_verbose_$(V))

> Also, I have a silly typo nit inline:
> 
> Documentation/topics/debugging-ddlog.rst 
> 
> Nit typo: conrete (line 29) -- meant to say "concrete"?

Thanks, I've folded that in, too.
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH ovn] ovn.at: Make some of the tests more predictable.

2020-11-09 Thread Ben Pfaff
On Mon, Nov 09, 2020 at 02:43:43PM +0100, Dumitru Ceara wrote:
> Fix some of the race conditions that are present in the current OVN test
> suite.
> 
> Signed-off-by: Dumitru Ceara 

Thanks!

I think I see some problems (I did not test this).  First, I'm surprised
this works, since I would expect m4 to drop the [], so that they'd need
to be doubled into [[]]:

sed 's/conjunction([0-9]\+,[0-9]\+\/[0-9]\+)/conjunction()/g'

Second, \+ is a GNU sed extension.  Usually we avoid GNU extensions
since sometimes people want to run OVS (and maybe OVN?) with BSD.  The
portable way to write it is \{1,\}.

Maybe it would be easier to write s/conjunction([^)]*)/conjunction()/g,
doubling the [] if necessary.

Thanks,

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


Re: [ovs-dev] [PATCH ovn v3 6/6] ovn-northd-ddlog: New implementation of ovn-northd based on ddlog.

2020-11-09 Thread Ben Pfaff
On Mon, Nov 09, 2020 at 02:44:53PM +0100, Dumitru Ceara wrote:
> On 11/6/20 4:36 AM, Ben Pfaff wrote:
> > From: Leonid Ryzhyk 
> > 
> > This implementation is incremental, meaning that it only recalculates
> > what is needed for the southbound database when northbound changes
> > occur.  It is expected to scale better than the C implementation,
> > for large deployments.  (This may take testing and tuning to be
> > effective.)
> > 
> > There are three tests that I'm having mysterious trouble getting
> > to work with DDlog.  For now, I've marked the testsuite to skip
> > them unless RUN_ANYWAY=yes is set in the environment.
> > 
> > Signed-off-by: Leonid Ryzhyk 
> > Co-authored-by: Justin Pettit 
> > Signed-off-by: Justin Pettit 
> > Co-authored-by: Ben Pfaff 
> > Signed-off-by: Ben Pfaff 
> > ---
> 
> As discussed on v2 some tests fail.  Quite a few are indeed because of
> races in the tests themselves.  For a couple of the OVN test failures I
> sent a patch to fix them.  If you prefer I can also send it as an
> incremental to your series:
> 
> http://patchwork.ozlabs.org/project/ovn/list/?series=213114

Thanks, I sent a review for this just now.

> There are a few others that are ddlog-related:
> 
> 145: ovn -- /32 router IP address -- ovn-northd-ddlog FAILED
> (ovs-macros.at:231)
> 
> This is because the following logical flows are not added to the SB by
> ovn-northd-ddlog:
> table=14(ls_in_arp_rsp  ), priority=100  , match=(arp.tpa ==
> 10.0.0.2 && arp.op == 1 && inport == "alice1"), action=(next;)
> table=14(ls_in_arp_rsp  ), priority=50   , match=(arp.tpa ==
> 10.0.0.2 && arp.op == 1), action=(eth.dst = eth.src; eth.src =
> f0:00:00:01:02:04; arp.op = 2; /* ARP reply */ arp.tha = arp.sha;
> arp.sha = f0:00:00:01:02:04; arp.tpa = arp.spa; arp.spa = 10.0.0.2;
> outport = inport; flags.loopback = 1; output;)
> 
> 213: ovn -- IGMP snoop/querier/relay -- ovn-northd-ddlog FAILED
> 215: ovn -- MLD snoop/querier/relay -- ovn-northd-ddlog FAILED
> 
> These happen because the following commit is not yet ported to northd-ddlog:
> https://github.com/ovn-org/ovn/commit/97778ab3e422ac071faa67f9f477fd54977e9c04

Thanks for identifying that.  I thought I was caught up.  I'll fix it.
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


[ovs-dev] [PATCH ovn] Allow VLAN traffic when LS:vlan-passthru=true

2020-11-09 Thread Ihar Hrachyshka
A new other_config:vlan-passthru knob is added to Logical-Switches. When
true, VLAN tagged incoming traffic is allowed. This option can be used
to implement OpenStack Network VLAN transparency API extension [1].

[1] 
https://docs.openstack.org/api-ref/network/v2/index.html#vlan-transparency-extension

Signed-off-by: Ihar Hrachyshka 
---
 NEWS|  2 +
 northd/ovn-northd.c | 14 +--
 ovn-nb.xml  |  7 
 tests/ovn.at| 93 +
 4 files changed, 113 insertions(+), 3 deletions(-)

diff --git a/NEWS b/NEWS
index 47ffc27b8..601023067 100644
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,8 @@ Post-v20.09.0
  removed.  See ovn-nb(5) for advice on how to update your config if needed.
- Add IPv4 iPXE support introducing "bootfile_name_alt" option to ovn dhcp
  server.
+   - Support other_config:vlan-passthru=true to allow VLAN tagged incoming
+ traffic.
 
 OVN v20.09.0 - 28 Sep 2020
 --
diff --git a/northd/ovn-northd.c b/northd/ovn-northd.c
index dbe5fa676..8f134a048 100644
--- a/northd/ovn-northd.c
+++ b/northd/ovn-northd.c
@@ -6803,6 +6803,12 @@ build_drop_arp_nd_flows_for_unbound_router_ports(struct 
ovn_port *op,
 ds_destroy(&match);
 }
 
+static bool
+is_vlan_transparent(const struct ovn_datapath *od)
+{
+return smap_get_bool(&od->nbs->other_config, "vlan-passthru", false);
+}
+
 static void
 build_lswitch_flows(struct hmap *datapaths, struct hmap *ports,
 struct hmap *port_groups, struct hmap *lflows,
@@ -6850,9 +6856,11 @@ build_lswitch_flows(struct hmap *datapaths, struct hmap 
*ports,
 continue;
 }
 
-/* Logical VLANs not supported. */
-ovn_lflow_add(lflows, od, S_SWITCH_IN_PORT_SEC_L2, 100, "vlan.present",
-  "drop;");
+if (!is_vlan_transparent(od)) {
+/* Block logical VLANs. */
+ovn_lflow_add(lflows, od, S_SWITCH_IN_PORT_SEC_L2, 100,
+  "vlan.present", "drop;");
+}
 
 /* Broadcast/multicast source address is invalid. */
 ovn_lflow_add(lflows, od, S_SWITCH_IN_PORT_SEC_L2, 100, "eth.src[40]",
diff --git a/ovn-nb.xml b/ovn-nb.xml
index 5e8635992..5704eabea 100644
--- a/ovn-nb.xml
+++ b/ovn-nb.xml
@@ -525,6 +525,13 @@
   
 
 
+
+  
+Determines whether VLAN tagged incoming traffic should be allowed.
+  
+
+
 
   
 See External IDs at the beginning of this document.
diff --git a/tests/ovn.at b/tests/ovn.at
index 1c29cdf26..3d3811888 100644
--- a/tests/ovn.at
+++ b/tests/ovn.at
@@ -2984,6 +2984,99 @@ OVN_CLEANUP([hv-1],[hv-2])
 
 AT_CLEANUP
 
+AT_SETUP([ovn -- VLAN transparency, passthru=true])
+ovn_start
+
+ovn-nbctl ls-add ls
+ovn-nbctl --wait=sb add Logical-Switch ls other_config vlan-passthru=true
+for i in 1 2; do
+ovn-nbctl lsp-add ls lsp$i
+ovn-nbctl lsp-set-addresses lsp$i f0:00:00:00:00:0$i
+#ovn-nbctl lsp-set-port-security lsp$i f0:00:00:00:00:0$i
+done
+
+net_add physnet
+ovs-vsctl add-br br-phys
+ovs-vsctl set open . external-ids:ovn-bridge-mappings=physnet:br-phys
+ovn_attach physnet br-phys 192.168.0.1
+
+for i in 1 2; do
+ovs-vsctl add-port br-int vif$i -- set Interface vif$i 
external-ids:iface-id=lsp$i \
+  options:tx_pcap=vif$i-tx.pcap \
+  options:rxq_pcap=vif$i-rx.pcap \
+  ofport-request=$i
+OVS_WAIT_UNTIL([test x`ovn-nbctl lsp-get-up lsp$i` = xup])
+done
+
+test_packet() {
+local inport=$1 dst=$2 src=$3 eth=$4 eout=$5 lout=$6
+
+# First try tracing the packet.
+uflow="inport==\"lsp$inport\" && eth.dst==$dst && eth.src==$src && 
eth.type==0x$eth && vlan.present==1"
+echo "output(\"$lout\");" > expout
+AT_CAPTURE_FILE([trace])
+AT_CHECK([ovn-trace --all ls "$uflow" | tee trace | sed '1,/Minimal 
trace/d'], [0], [expout])
+
+# Then actually send a packet, for an end-to-end test.
+local packet=$(echo $dst$src | sed 's/://g')${eth}fefefefe
+vif=vif$inport
+ovs-appctl netdev-dummy/receive $vif $packet
+echo $packet >> ${eout#lsp}.expected
+}
+
+test_packet 1 f0:00:00:00:00:02 f0:00:00:00:00:01 8100 lsp2 lsp2
+test_packet 2 f0:00:00:00:00:01 f0:00:00:00:00:02 8100 lsp1 lsp1
+for i in 1 2; do
+OVN_CHECK_PACKETS_REMOVE_BROADCAST([vif$i-tx.pcap], [$i.expected])
+done
+
+AT_CLEANUP
+
+AT_SETUP([ovn -- VLAN transparency, passthru=false])
+ovn_start
+
+ovn-nbctl ls-add ls
+ovn-nbctl --wait=sb add Logical-Switch ls other_config vlan-passthru=false
+for i in 1 2; do
+ovn-nbctl lsp-add ls lsp$i
+ovn-nbctl lsp-set-addresses lsp$i f0:00:00:00:00:0$i
+done
+
+net_add physnet
+ovs-vsctl add-br br-phys
+ovs-vsctl set open . external-ids:ovn-bridge-mappings=physnet:br-phys
+ovn_attach physnet br-phys 192.168.0.1
+
+for i in 1 2; do
+ovs-vsctl add-port br-int vif$i -- set Interface vif$i 
external-ids:iface-id=lsp$i \
+ 

[ovs-dev] READ ME!!

2020-11-09 Thread Anonymous via dev
I know ( Password)is one of your passwords on the day of hack..
Lets get directly to the point.
Not one person has paid me to check about you.
You do not know me and you're probably thinking why you are getting this email?
in fact, i actually placed malware on the adult vids (adult porn) website and 
you know what, you visited this site to experience fun (you know what i mean).
When you were viewing videos, your browser started out operating as a RDP 
having a key logger which provided me with accessibility to your display and 
web cam.
immediately after that, my malware obtained every one of your contacts from 
your Messenger, FB, as well as email account.
After that I created a double-screen video. The 1st part shows the video you 
were viewing (you have a nice taste omg), and the 2nd part displays the 
recording of your cam, and it's you.
Best solution would be to pay me $1,382.00
We are going to refer to it as a donation. In this situation, I most certainly 
will without delay remove your video.

My -BTC -address: 1CvHm99i5FTdgNSgRasC7mbc22uCckrfZo

[case SeNSiTiVe, copy & paste it]

You could go on with your life like this never happened and you will not ever 
hear back again from me.

You'll make the payment via Bitcoin (if you do not know this, search 'how to 
buy bitcoin' in Google).
If you are planning on going to the law, surely, this e-mail can not be traced 
back to me, because it's hacked too.
I have taken care of my actions. i am not looking to ask you for a lot, i 
simply want to be paid.
if i do not receive the bitcoin;, i definitely will send out your video 
recording to all of your contacts including friends and family, co-workers, and 
so on.
Nevertheless, if i do get paid, i will destroy the recording immediately.
If you need proof, reply with Yeah then i will send out your video recording to 
your 8 friends.
it's a nonnegotiable offer and thus please don't waste mine time & yours by 
replying to this message.

What should file a complaint under?
Please advise..

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


Re: [ovs-dev] [PATCH dpdk-latest v4] build: Add support for DPDK meson build.

2020-11-09 Thread Pai G, Sunil
Hi Ilya , 

Thank you for the comments , please see response inline.

> -Original Message-
> From: Ilya Maximets 
> Sent: Tuesday, November 10, 2020 2:27 AM
> To: Pai G, Sunil ; d...@openvswitch.org
> Cc: Stokes, Ian ; i.maxim...@ovn.org;
> david.march...@redhat.com; Richardson, Bruce
> ; christian.ehrha...@canonical.com;
> i.maxim...@ovn.org; Kevin Traynor 
> Subject: Re: [PATCH dpdk-latest v4] build: Add support for DPDK meson
> build.
> 
> On 9/2/20 8:06 PM, Sunil Pai G wrote:
> > Make based build is deprecated in DPDK. Meson based build to be used
> > for future DPDK releases.
> >
> > This updates travis, configure script and documentation for using DPDK
> > Meson with OVS.
> >
> > Tested-at:
> > https://travis-ci.org/github/Sunil-Pai-G/ovs-copy/builds/723510063
> > Signed-off-by: Sunil Pai G 
> > ---
> 
> Sorry for delay.  Following up with things that I think should be fixed before
> this patch merged to master.

Not a problem :)

> 
> > v3->v4:
> > - Fix checkpatch errors
> >
> > v2->v3:
> > - Update Documentation for vhost-user
> >
> > v1->v2:
> > - Update Documentation
> > - Simplify the pkg-config parsing script
> > - Rename and move the pkg-config parsing script to python dir
> > - Update travis to:
> >- install DPDK to cached dir
> >- disable DPDK tests
> >- removed fPIC flag for DPDK
> >- removed cross compilation for aarch64
> > ---
> >  .travis.yml  |  3 ++
> >  .travis/linux-build.sh   | 39 ++-
> >  .travis/linux-prepare.sh |  1 +
> >  Documentation/intro/install/afxdp.rst|  2 +-
> >  Documentation/intro/install/dpdk.rst | 63 
> >  Documentation/topics/dpdk/vhost-user.rst | 18 +--
> >  acinclude.m4 | 44 +++--
> >  python/automake.mk   |  3 +-
> >  python/build/pkgcfg.py   | 30 +++
> >  9 files changed, 149 insertions(+), 54 deletions(-)  create mode
> > 100644 python/build/pkgcfg.py
> >
> > diff --git a/.travis.yml b/.travis.yml index 3dd5d1d23..a8f9a4d79
> > 100644
> > --- a/.travis.yml
> > +++ b/.travis.yml
> > @@ -27,6 +27,9 @@ addons:
> >- selinux-policy-dev
> >- libunbound-dev
> >- libunwind-dev
> > +  - python3-setuptools
> > +  - python3-wheel
> > +  - ninja-build
> >
> >


> > +CC=gcc meson $DPDK_OPTS build
> > +ninja -C build
> > +sudo ninja -C build install
> 
> Why we need 'sudo' here?  We're installing to a local folder, should work
> without 'sudo', IIUC.

Sure , Will try removing the sudo.

> 
> > +
> > +# Update the library paths.
> > +sudo ldconfig
> >
> > -make -j4 CC=gcc EXTRA_CFLAGS='-fPIC'
> > -EXTRA_OPTS="$EXTRA_OPTS --with-dpdk=$(pwd)/build"
> > -echo "Installed DPDK source in $(pwd)"
> > +echo "Installed DPDK source"
> 
> It's probably better to keep this line as is.

Sure.

> 
> >  popd
> >  echo "${DPDK_VER}" > ${VERSION_FILE}  } diff --git
> > a/.travis/linux-prepare.sh b/.travis/linux-prepare.sh index
> > 71eb347e8..1baa11641 100755
> > --- a/.travis/linux-prepare.sh
> > +++ b/.travis/linux-prepare.sh
> > @@ -22,6 +22,7 @@ cd ..
> >
> >  pip3 install --disable-pip-version-check --user flake8 hacking
> >  pip3 install --user --upgrade docutils
> > +pip3 install --user  'meson==0.47.1'
> >
> >  if [ "$M32" ]; then
> >  # Installing 32-bit libraries.
> > diff --git a/Documentation/intro/install/afxdp.rst
> > b/Documentation/intro/install/afxdp.rst
> > index 3c8f78825..327f2b3df 100644
> > --- a/Documentation/intro/install/afxdp.rst
> > +++ b/Documentation/intro/install/afxdp.rst
> > @@ -396,7 +396,7 @@ PVP using vhostuser device
> >  --
> >  First, build OVS with DPDK and AFXDP::
> >
> > -  ./configure  --enable-afxdp --with-dpdk=
> > +  ./configure  --enable-afxdp --with-dpdk=shared|static|
> 
> There should be no '' option.  See below.
Sure .

> 
> >make -j4 && make install
> >
> >  Create a vhost-user port from OVS::
> > diff --git a/Documentation/intro/install/dpdk.rst
> > b/Documentation/intro/install/dpdk.rst
> > index 39544f835..cd7e51c75 100644
> > --- a/Documentation/intro/install/dpdk.rst
> > +++ b/Documentation/intro/install/dpdk.rst
> > @@ -62,6 +62,8 @@ Detailed system requirements can be found at `DPDK
> requirements`_.
> >  .. _DPDK supported NIC: http://dpdk.org/doc/nics  .. _DPDK
> > requirements: http://dpdk.org/doc/guides/linux_gsg/sys_reqs.html
> >
> > +.. _dpdk-install:
> > +
> >  Installing
> >  --
> >
> > @@ -76,10 +78,31 @@ Install DPDK
> > $ export DPDK_DIR=/usr/src/dpdk-stable-19.11.2
> > $ cd $DPDK_DIR
> >
> > +#. Configure and install DPDK using Meson
> > +
> > +   Meson is the preferred tool to build recent DPDK releases
> > +   as Make support is deprecated and will be removed from DPDK 20.11.
> > +   OVS supports DPDK Meson builds from DPDK 19.11 onwards.
> 
> Do we support meson builds with