[ovs-dev] Mr.Samuel Durojaye

2020-05-24 Thread bounce
I  Am Mr.Samuel Durojaye, Director, Foreign Remittance Department- Wema bank of 
Nigeria. I am contacting based on a recent meeting held with the Office of the 
Presidency, Federal Republic of Nigeria in conjunction with the Federal 
Ministry of Finance and Senate committee on Budget and planning,National 
Assembly.

After the meeting, it was agreed to pay James Lee for his overdue contract 
payment of Five Million United States Dollars Only {US$5,000,000.00} out of his 
long complicated outstanding payment. but this Mr Lee died in motor accident so 
am fronting you as his next of kin.

Considering the circumstance that threw up this opportunity,I am willing and 
prepared to use my good office and power to get it released to you either in 
cash ,to be delivered to your door step at any address of your choice  but on 
the condition that it shall be shared 50/50% between us.

I have what it takes to deliver on this transaction in maximum of 7 banking 
days devoid of any risk not hitch.All I need to initiate action in the matter 
is your formal consent by way of reverting to me with below itemised 
information should you settle for secured Cash Delivery to your address:-


Your full name:
Private telephone number:
Choice of address {where you wish the consignment delivered}:


God is with us as we wait for your reply.

Yours faithfully,
Mr.Samuel Durojaye
Direct tel.no:+234-7081540754
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH] datapath: Add hash info to upcall.

2020-05-24 Thread Han Zhou
On Thu, May 7, 2020 at 11:21 PM Tonghao Zhang 
wrote:
>
> On Mon, May 4, 2020 at 9:02 AM Han Zhou  wrote:
> >
> > This patch backports below upstream patches, and add __skb_set_hash
> > to compat for older kernels.
> >
> > commit b5ab1f1be6180a2e975eede18731804b5164a05d
> > Author: Jakub Kicinski 
> > Date:   Mon Mar 2 21:05:18 2020 -0800
> >
> > openvswitch: add missing attribute validation for hash
> >
> > Add missing attribute validation for OVS_PACKET_ATTR_HASH
> > to the netlink policy.
> >
> > Fixes: bd1903b7c459 ("net: openvswitch: add hash info to upcall")
> > Signed-off-by: Jakub Kicinski 
> > Reviewed-by: Greg Rose 
> > Signed-off-by: David S. Miller 
> >
> > commit bd1903b7c4596ba6f7677d0dfefd05ba5876707d
> > Author: Tonghao Zhang 
> > Date:   Wed Nov 13 23:04:49 2019 +0800
> >
> > net: openvswitch: add hash info to upcall
> >
> > When using the kernel datapath, the upcall don't
> > include skb hash info relatived. That will introduce
> > some problem, because the hash of skb is important
> > in kernel stack. For example, VXLAN module uses
> > it to select UDP src port. The tx queue selection
> > may also use the hash in stack.
> >
> > Hash is computed in different ways. Hash is random
> > for a TCP socket, and hash may be computed in hardware,
> > or software stack. Recalculation hash is not easy.
> >
> > Hash of TCP socket is computed:
> > tcp_v4_connect
> > -> sk_set_txhash (is random)
> >
> > __tcp_transmit_skb
> > -> skb_set_hash_from_sk
> >
> > There will be one upcall, without information of skb
> > hash, to ovs-vswitchd, for the first packet of a TCP
> > session. The rest packets will be processed in Open vSwitch
> > modules, hash kept. If this tcp session is forward to
> > VXLAN module, then the UDP src port of first tcp packet
> > is different from rest packets.
> >
> > TCP packets may come from the host or dockers, to Open vSwitch.
> > To fix it, we store the hash info to upcall, and restore hash
> > when packets sent back.
> >
> > +---+  +-+
> > |   Docker/VMs  |  | ovs-vswitchd|
> > ++--+  +-++--+
> >  |   ^|
> >  |   ||
> >  |   |  upcallv restore packet
hash
> > (not recalculate)
> >  | +-++--+
> >  |  tap netdev | |   vxlan
module
> >  +---> +-->  Open vSwitch ko +-->
> >or internal type| |
> >+-+
> >
> > Reported-at:
https://mail.openvswitch.org/pipermail/ovs-dev/2019-October/364062.html
> > Signed-off-by: Tonghao Zhang 
> > Acked-by: Pravin B Shelar 
> > Signed-off-by: David S. Miller 
> >
> > Cc: Tonghao Zhang 
> > Signed-off-by: Han Zhou 
> Reviewed-by: Tonghao Zhang 

Thanks review from Tonghao and Greg.
It has been 3 weeks, so cc some maintainers and pop it up.

> > ---
> >  acinclude.m4 |  2 ++
> >  datapath/datapath.c  | 27
++-
> >  datapath/datapath.h  | 12 
> >  datapath/linux/compat/include/linux/skbuff.h | 10 ++
> >  4 files changed, 50 insertions(+), 1 deletion(-)
> >
> > diff --git a/acinclude.m4 b/acinclude.m4
> > index dabbffd..5e5ca39 100644
> > --- a/acinclude.m4
> > +++ b/acinclude.m4
> > @@ -1101,6 +1101,8 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
> >OVS_FIND_OP_PARAM_IFELSE([$KSRC/include/net/rtnetlink.h],
> > [validate], [extack],
> >
[OVS_DEFINE([HAVE_RTNLOP_VALIDATE_WITH_EXTACK])])
> > +  OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h],
> > +  [__skb_set_hash])
> >
> >if cmp -s datapath/linux/kcompat.h.new \
> >  datapath/linux/kcompat.h >/dev/null 2>&1; then
> > diff --git a/datapath/datapath.c b/datapath/datapath.c
> > index a7af784..82f5688 100644
> > --- a/datapath/datapath.c
> > +++ b/datapath/datapath.c
> > @@ -371,7 +371,8 @@ static size_t upcall_msg_size(const struct
dp_upcall_info *upcall_info,
> > size_t size = NLMSG_ALIGN(sizeof(struct ovs_header))
> > + nla_total_size(hdrlen) /* OVS_PACKET_ATTR_PACKET */
> > + nla_total_size(ovs_key_attr_size()) /*
OVS_PACKET_ATTR_KEY */
> > -   + nla_total_size(sizeof(unsigned int)); /*
OVS_PACKET_ATTR_LEN */
> > +   + nla_total_size(sizeof(unsigned int)) /*
OVS_PACKET_ATTR_LEN */
> > +   + nla_total_size(sizeof(u64)); /* OVS_PACKET_ATTR_HASH
*/
> >
> > /* OVS_PACKET_ATTR_USERDATA */
> > if (upcall_info->userdata)
> > @@ -414,6 +415,7 @@ 

Re: [ovs-dev] [PATCH] compat: Backport ipv6_stub change

2020-05-24 Thread William Tu
On Thu, May 21, 2020 at 02:54:03PM -0700, Greg Rose wrote:
> A patch backported to the Linux stable 4.14 tree and present in the
> latest stable 4.14.181 kernel breaks ipv6_stub usage.
> 
> The commit is
> 8ab8786f78c3 ("net ipv6_stub: use ip6_dst_lookup_flow instead of 
> ip6_dst_lookup").
> 
> Create the compat layer define to check for it and fixup usage in vxlan
> and geneve modules.
> 
> Passes Travis here:
> https://travis-ci.org/github/gvrose8192/ovs-experimental/builds/689798733
> 
> Signed-off-by: Greg Rose 
Thanks for fixing the travis failure.
Applied to master.
William

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


Re: [ovs-dev] [PATCH] netdev-offload-dpdk: Support offload of VLAN PUSH/POP actions

2020-05-24 Thread Sriharsha Basavapatna via dev
On Sun, May 24, 2020 at 2:52 PM Tonghao Zhang  wrote:
>
> On Sun, May 24, 2020 at 3:38 PM Sriharsha Basavapatna via dev
>  wrote:
> >
> > Parse VLAN PUSH/POP OVS datapath actions and add respective RTE actions.
> One question, if pop vlan in the hw, then process it in userspace
> datapath, the metadata of vlan should restore it.
It is not processed in userspace datapath. The packet is processed and
forwarded entirely in HW (full-offload/SR-IOV VF use case).

> I guess pop_vlan/pop_vxlan are same case. right ?
No, they are not. pop_vlan pops the vlan tag in the packet.
vxlan_decap pops the vxlan tunnel header.

Thanks,
-Harsha

> > Signed-off-by: Sriharsha Basavapatna 
> > ---
> >  lib/netdev-offload-dpdk.c | 34 ++
> >  1 file changed, 34 insertions(+)
> >
> > diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c
> > index f8c46bbaa..9d7c0d4ce 100644
> > --- a/lib/netdev-offload-dpdk.c
> > +++ b/lib/netdev-offload-dpdk.c
> > @@ -970,6 +970,33 @@ parse_set_actions(struct flow_actions *actions,
> >  return 0;
> >  }
> >
> > +static int
> > +parse_vlan_push_action(struct flow_actions *actions,
> > +   const struct ovs_action_push_vlan *vlan_push)
> > +{
> > +struct rte_flow_action_of_push_vlan *rte_push_vlan;
> > +struct rte_flow_action_of_set_vlan_pcp *rte_vlan_pcp;
> > +struct rte_flow_action_of_set_vlan_vid *rte_vlan_vid;
> > +
> > +rte_push_vlan = xzalloc(sizeof *rte_push_vlan);
> > +rte_push_vlan->ethertype = vlan_push->vlan_tpid;
> > +add_flow_action(actions, RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN,
> > +rte_push_vlan);
> > +
> > +rte_vlan_pcp = xzalloc(sizeof *rte_vlan_pcp);
> > +rte_vlan_pcp->vlan_pcp = vlan_tci_to_pcp(vlan_push->vlan_tci);
> > +add_flow_action(actions, RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP,
> > +rte_vlan_pcp);
> > +
> > +rte_vlan_vid = xzalloc(sizeof *rte_vlan_vid);
> > +rte_vlan_vid->vlan_vid =
> > +rte_cpu_to_be_16(vlan_tci_to_vid(vlan_push->vlan_tci));
> > +add_flow_action(actions, RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID,
> > +rte_vlan_vid);
> > +
> > +return 0;
> > +}
> > +
> >  static int
> >  parse_flow_actions(struct netdev *netdev,
> > struct flow_actions *actions,
> > @@ -998,6 +1025,13 @@ parse_flow_actions(struct netdev *netdev,
> >masked)) {
> >  return -1;
> >  }
> > +} else if (nl_attr_type(nla) == OVS_ACTION_ATTR_PUSH_VLAN) {
> > +const struct ovs_action_push_vlan *vlan = nl_attr_get(nla);
> > +if (parse_vlan_push_action(actions, vlan)) {
> > +return -1;
> > +}
> > +} else if (nl_attr_type(nla) == OVS_ACTION_ATTR_POP_VLAN) {
> > +add_flow_action(actions, RTE_FLOW_ACTION_TYPE_OF_POP_VLAN, 
> > NULL);
> >  } else {
> >  VLOG_DBG_RL(, "Unsupported action type %d", 
> > nl_attr_type(nla));
> >  return -1;
> > --
> > 2.25.0.rc2
> >
> > ___
> > dev mailing list
> > d...@openvswitch.org
> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
>
>
> --
> Best regards, Tonghao
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


[ovs-dev] MY HUMBLE REQUEST

2020-05-24 Thread Mrs Anna Cooper
 
My Dear

I am Mrs. Anna Cooper, from Australia, lived in South Africa for 20
years and currently residing in London United Kingdom, a widow to late
Dr. Andrew Cooper. I am 75 years old, and presently suffering from
Leukemia.

My health condition has gotten worse and just two weeks ago my doctor
informed me that my condition has reach a critical stage, and that I
have just 3 months left. This confirmation from my doctor was and
still is a devastating news, it is hard to know that you have just a
little time left to live here.

My late husband was a contractor in both South Africa and London, he
died in a plane crash and during the period of our marriage we could
not bear any child. My late husband was very wealthy and after his
death, I inherited all his businesses and wealth both in South Africa
and London-United Kingdom.

After the doctor’s medical pronunciation that I have just few months
to live, I decided to divide my wealth to contribute to your country
and Africa where my late husband as a contractor made lots of money. I
want to assist you with the funds to do great charity works in your
country, this is my last wish. I selected you after searching few
websites; I prayed and was led to you. I am willing to donate the sum
of Four Million, Six Hundred thousand United States Dollars
(USD$4,600,000.00) to the less privileged through you.

Please I want to transfer this money to you as I am travelling to
South Africa soonest to have my lawyer amend my WILL. If you can
handle this fund and very sure to do charity works on my behalf then I
will include your name in my WILL when in South Africa, and from there
I will travel to Australia to meet a specialist as I want to be buried
alongside my late husband when I passed on. Note that this fund is in
the financial institution and upon my instruction; I will file in an
application through my family attorney for the transfer of the money
into your account for the said purpose.

Lastly, I honestly pray that this money when transferred will be used
for the said purpose even though I might be late then. I have come to
find out that wealth is vanity and I made a promise to God that my
wealth will be used to support the poor and the assist the sick. Do
let me know if you will be able to handle this fund and use it for the
said purpose so that I will inform my attorney and my bank on my
decision. Reply to me using: annacooper02...@gmail.com


God bless you.
Mrs. Anna Cooper.  
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH] netdev-offload-dpdk: Support offload of VLAN PUSH/POP actions

2020-05-24 Thread Tonghao Zhang
On Sun, May 24, 2020 at 3:38 PM Sriharsha Basavapatna via dev
 wrote:
>
> Parse VLAN PUSH/POP OVS datapath actions and add respective RTE actions.
One question, if pop vlan in the hw, then process it in userspace
datapath, the metadata of vlan should restore it.
I guess pop_vlan/pop_vxlan are same case. right ?
> Signed-off-by: Sriharsha Basavapatna 
> ---
>  lib/netdev-offload-dpdk.c | 34 ++
>  1 file changed, 34 insertions(+)
>
> diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c
> index f8c46bbaa..9d7c0d4ce 100644
> --- a/lib/netdev-offload-dpdk.c
> +++ b/lib/netdev-offload-dpdk.c
> @@ -970,6 +970,33 @@ parse_set_actions(struct flow_actions *actions,
>  return 0;
>  }
>
> +static int
> +parse_vlan_push_action(struct flow_actions *actions,
> +   const struct ovs_action_push_vlan *vlan_push)
> +{
> +struct rte_flow_action_of_push_vlan *rte_push_vlan;
> +struct rte_flow_action_of_set_vlan_pcp *rte_vlan_pcp;
> +struct rte_flow_action_of_set_vlan_vid *rte_vlan_vid;
> +
> +rte_push_vlan = xzalloc(sizeof *rte_push_vlan);
> +rte_push_vlan->ethertype = vlan_push->vlan_tpid;
> +add_flow_action(actions, RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN,
> +rte_push_vlan);
> +
> +rte_vlan_pcp = xzalloc(sizeof *rte_vlan_pcp);
> +rte_vlan_pcp->vlan_pcp = vlan_tci_to_pcp(vlan_push->vlan_tci);
> +add_flow_action(actions, RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP,
> +rte_vlan_pcp);
> +
> +rte_vlan_vid = xzalloc(sizeof *rte_vlan_vid);
> +rte_vlan_vid->vlan_vid =
> +rte_cpu_to_be_16(vlan_tci_to_vid(vlan_push->vlan_tci));
> +add_flow_action(actions, RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID,
> +rte_vlan_vid);
> +
> +return 0;
> +}
> +
>  static int
>  parse_flow_actions(struct netdev *netdev,
> struct flow_actions *actions,
> @@ -998,6 +1025,13 @@ parse_flow_actions(struct netdev *netdev,
>masked)) {
>  return -1;
>  }
> +} else if (nl_attr_type(nla) == OVS_ACTION_ATTR_PUSH_VLAN) {
> +const struct ovs_action_push_vlan *vlan = nl_attr_get(nla);
> +if (parse_vlan_push_action(actions, vlan)) {
> +return -1;
> +}
> +} else if (nl_attr_type(nla) == OVS_ACTION_ATTR_POP_VLAN) {
> +add_flow_action(actions, RTE_FLOW_ACTION_TYPE_OF_POP_VLAN, NULL);
>  } else {
>  VLOG_DBG_RL(, "Unsupported action type %d", 
> nl_attr_type(nla));
>  return -1;
> --
> 2.25.0.rc2
>
> ___
> dev mailing list
> d...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev



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


[ovs-dev] More Details.

2020-05-24 Thread Norah Jane



Calvary Greetings Beloved ,


How are you today , It’s my pleasure to finally getting a chance to write you. 
I would like to be sure that your email is active please respond to me as soon 
as possible


I will like to donate for Charity


 please hear me out. I’m not sure what the time is now in your location but do 
have a great day and stay safe.



Regards


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


[ovs-dev] [PATCH] netdev-offload-dpdk: Support offload of VLAN PUSH/POP actions

2020-05-24 Thread Sriharsha Basavapatna via dev
Parse VLAN PUSH/POP OVS datapath actions and add respective RTE actions.

Signed-off-by: Sriharsha Basavapatna 
---
 lib/netdev-offload-dpdk.c | 34 ++
 1 file changed, 34 insertions(+)

diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c
index f8c46bbaa..9d7c0d4ce 100644
--- a/lib/netdev-offload-dpdk.c
+++ b/lib/netdev-offload-dpdk.c
@@ -970,6 +970,33 @@ parse_set_actions(struct flow_actions *actions,
 return 0;
 }
 
+static int
+parse_vlan_push_action(struct flow_actions *actions,
+   const struct ovs_action_push_vlan *vlan_push)
+{
+struct rte_flow_action_of_push_vlan *rte_push_vlan;
+struct rte_flow_action_of_set_vlan_pcp *rte_vlan_pcp;
+struct rte_flow_action_of_set_vlan_vid *rte_vlan_vid;
+
+rte_push_vlan = xzalloc(sizeof *rte_push_vlan);
+rte_push_vlan->ethertype = vlan_push->vlan_tpid;
+add_flow_action(actions, RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN,
+rte_push_vlan);
+
+rte_vlan_pcp = xzalloc(sizeof *rte_vlan_pcp);
+rte_vlan_pcp->vlan_pcp = vlan_tci_to_pcp(vlan_push->vlan_tci);
+add_flow_action(actions, RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP,
+rte_vlan_pcp);
+
+rte_vlan_vid = xzalloc(sizeof *rte_vlan_vid);
+rte_vlan_vid->vlan_vid =
+rte_cpu_to_be_16(vlan_tci_to_vid(vlan_push->vlan_tci));
+add_flow_action(actions, RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID,
+rte_vlan_vid);
+
+return 0;
+}
+
 static int
 parse_flow_actions(struct netdev *netdev,
struct flow_actions *actions,
@@ -998,6 +1025,13 @@ parse_flow_actions(struct netdev *netdev,
   masked)) {
 return -1;
 }
+} else if (nl_attr_type(nla) == OVS_ACTION_ATTR_PUSH_VLAN) {
+const struct ovs_action_push_vlan *vlan = nl_attr_get(nla);
+if (parse_vlan_push_action(actions, vlan)) {
+return -1;
+}
+} else if (nl_attr_type(nla) == OVS_ACTION_ATTR_POP_VLAN) {
+add_flow_action(actions, RTE_FLOW_ACTION_TYPE_OF_POP_VLAN, NULL);
 } else {
 VLOG_DBG_RL(, "Unsupported action type %d", nl_attr_type(nla));
 return -1;
-- 
2.25.0.rc2

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


Re: [ovs-dev] [PATCH ovn v7 5/9] ovn-controller: I-P for ct zone and OVS interface changes in flow output stage.

2020-05-24 Thread Han Zhou
On Sat, May 23, 2020 at 11:37 AM Numan Siddique  wrote:
>
>
>
> On Sat, May 23, 2020 at 7:30 AM Han Zhou  wrote:
>>
>> On Fri, May 22, 2020 at 10:29 AM Numan Siddique  wrote:
>> >
>> >
>> >
>> > On Thu, May 21, 2020 at 12:02 PM Han Zhou  wrote:
>> >>
>> >> On Wed, May 20, 2020 at 12:41 PM  wrote:
>> >> >
>> >> > From: Numan Siddique 
>> >> >
>> >> > This patch handles ct zone changes and OVS interface changes
>> incrementally
>> >> > in the flow output stage.
>> >> >
>> >> > Any changes to ct zone can be handled by running physical_run()
instead
>> >> of running
>> >> > flow_output_run(). And any changes to OVS interfaces can be either
>> handled
>> >> > incrementally (for OVS interfaces representing VIFs) or just running
>> >> > physical_run() (for tunnel and other types of interfaces).
>> >> >
>> >> > To better handle this, a new engine node 'physical_flow_changes' is
>> added
>> >> which
>> >> > handles changes to ct zone and OVS interfaces.
>> >> >
>> >> Hi Numan,
>> >>
>> > Hi Han,
>> >
>> > Thanks for the review and comments. Please see below.
>> >
>> >
>> >>
>> >> The engine node physical_flow_changes looks weird because it doesn't
>> really
>> >> have any data but merely to trigger some compute when VIF changes.
>> >> I think it can be handled in a more straightforward way. In fact there
>> was
>> >> a miss in my initial I-P patch that there are still global variables
used
>> >> in physical.c (my bad):
>> >> - localvif_to_ofport
>> >> - tunnels
>> >> In the principle of I-P engine global variable shouldn't be used
because
>> >> otherwise there is no way to ensure the dependency graph is followed.
The
>> >> current I-P is sitll correct only because interface changes (which in
>> turn
>> >> causes the above global var changes) always triggers recompute.
>> >>
>> >> Now to handle interface changes incrementally, we should simply move
>> these
>> >> global vars to engine nodes, and add them as input for flow_output,
and
>> >> also their input will be OVS_Interface (and probably some other
inputs).
>> >> With this, the dependency graph would be clear and implementation of
each
>> >> input handler will be straightforward. Otherwise, it would be really
hard
>> >> to follow the logic and deduce the correctness for all corner cases,
>> >> although it may be correct for normal scenarios that I believe you
have
>> >> done thorough tests. Do you mind refactoring it?
>> >
>> >
>> > Right now, the flow_output node has an "en_ct_zones" engine as input
and
>> it doesn't have
>> > OVS_interface as input. But this is ok as any runtime data change will
>> trigger recomputing.
>> >
>> Do you mean OVS_interface should actually be input of "en_ct_zones", but
it
>> is ok to not add it? But I don't understand why should it be input of
>> en_ct_zones. Maybe I missed something?
>
>
> I mean right now, OVS Interface is not an input to flow_output stage.
>
>>
>> My point above is about the dependency between flow_output and
>> OVS_interface. flow_output actually depends on OVS_interface. The two
>> global variables allowed flow_output to use OVS_interface data without
the
>> dependancy in the graph. Now since we incrementally procssing
OVS_interface
>> changes, we'd better fix the dependency graph to ensure the correctness.
>
>
> I agree.
>
>
>>
>> I
>> had encounted very tricky bugs even when some very trivial part of the
I-P
>> engine rule was not followed, and finally found out defining the engine
>> node properly was the easiest fix.
>>
>> > If en_ct_zones engine node changes, there is no need to trigger full
>> recompute and we
>> > call "physical_run()", it should be enough. Although we can definitely
>> further improve it
>> > and this can be tackled separately.
>> >
>> > In my understanding, I think we can also handle ovs interface changes
>> incrementally and if we can't
>> > we can just call "physical_run()" instead of full flow recompute.
>> >
>> > With this patch, it adds an engine node for physical flow changes and
the
>> input for that is en_ct_zone
>> > and ovs interface. I understand and agree that it's a bit weird.
>> >
>> > How to handle it when both
>> >- en_ct_zone changes
>> >-  some ovs interface changes.
>> >
>> > If both these inputs are direct inputs to the flow_output engine, then
we
>> may end up calling "physical_run()"
>> > twice. And I wanted to avoid that and hence added a
physical_flow_changes
>> node as an intermediate.
>> > How do you suggest we handle this if we directly handle the ovs
interface
>> changes in flow_output engine ?
>> >
>>
>> Not sure if I understand completely, but it seems you are suggesting we
can
>> afford a recompute for physical flows, but not for logical flows, and in
>> some cases this can happen. Hoewver, you are trying to make a full
phyical
>> computing appear as incremental processing, but you are not happy with
this
>> kind of I-P because the cost is high, so you want to avoid calling it
>> multiple times, so a intermediate node is added for that purpose.