[ovs-dev] [PATCH v4 6/6] ovn: distributed NAT flows

2016-12-28 Thread Mickey Spiegel
This patch implements the flows required in the ingress and egress pipeline stages in order to support NAT on a distributed logical router. NAT functionality is associated with the logical router gateway port. The flows that carry out NAT functionality all have match conditions on inport or

[ovs-dev] [PATCH v4 5/6] ovn: avoid snat recirc only on gateway routers

2016-12-28 Thread Mickey Spiegel
Currently, for performance reasons on gateway routers, ct_snat that does not specify an IP address does not immediately trigger recirculation. On gateway routers, ct_snat that does not specify an IP address happens in the UNSNAT pipeline stage, which is followed by the DNAT pipeline stage that

[ovs-dev] [PATCH v4 2/6] ovn: Introduce "chassisredirect" port binding

2016-12-28 Thread Mickey Spiegel
Currently OVN handles all logical router ports in a distributed manner, creating instances on each chassis. The logical router ingress and egress pipelines are traversed locally on the source chassis. In order to support advanced features such as one-to-many NAT (aka IP masquerading), where

[ovs-dev] [PATCH v4 1/6] ovn: add is_chassis_resident match expression component

2016-12-28 Thread Mickey Spiegel
This patch introduces a new match expression component is_chassis_resident(). Unlike match expression comparisons, is_chassis_resident is not pushed down to OpenFlow. It is a conditional that is evaluated in the controller during expr_simplify(), when it is replaced by a boolean expression. The

[ovs-dev] [PATCH v4 0/6] ovn: add distributed NAT capability

2016-12-28 Thread Mickey Spiegel
Currently OVN supports NAT functionality by connecting each distributed logical router to a centralized "l3gateway" router that resides on a single chassis. NAT is only carried out in the "l3gateway" router. This patch set introduces NAT capability in the distributed logical router itself,

Re: [ovs-dev] [PATCH] datapath-windows: WDK 10 IpHelper rename local variables

2016-12-28 Thread Alin Serdean
Please ignore this patch. I forgot to add renaming for `link`. > -Original Message- > From: Alin Serdean > Sent: Thursday, December 29, 2016 2:26 AM > To: d...@openvswitch.org > Cc: Alin Serdean > Subject: [PATCH] datapath-windows: WDK 10 IpHelper rename

Re: [ovs-dev] [PATCH 2/5] datapath-windows: Add Windows 10 family to solution

2016-12-28 Thread Alin Serdean
Hi Guru, I rebased the patch: http://patchwork.ozlabs.org/patch/709439/ Thanks a lot, Alin. From: Guru Shetty [mailto:g...@ovn.org] Sent: Thursday, December 22, 2016 1:06 AM To: Alin Serdean Cc: d...@openvswitch.org Subject: Re: [ovs-dev] [PATCH 2/5]

[ovs-dev] [PATCH] datapath-windows: WDK 10 IpHelper rename local variables

2016-12-28 Thread Alin Serdean
Compiling under WDK 10 triggers some warnings in IpHelper, which lead to a failing build. The root cause is that local variables `ipAddr` and `link` hide the previous local declaration. This patch just renames the variables. Signed-off-by: Alin Gabriel Serdean

[ovs-dev] [PATCH 2/2 v2] datapath-windows: Conntrack disable type truncation warning

2016-12-28 Thread Alin Serdean
Compiling with the WDK 10 gave the following warning: Warning C4311 'type cast': pointer truncation from 'POVS_CT_ENTRY' to 'UINT32' ovsext (OVSExt\ovsext) Conntrack.c 1139 This patch disables the warning on the file Conntrack.c. Signed-off-by: Alin Gabriel Serdean

[ovs-dev] [PATCH 1/2 v2] datapath-windows: Add Windows 10 family to solution

2016-12-28 Thread Alin Serdean
This patch adds two more compiling targets: - one for Windows 10 release - one for Windows 10 Debug The new targets are flagged properly to use the new Windows 10 kernel mode driver and its toolchain. Signed-off-by: Alin Gabriel Serdean Acked-by: Sairam

Re: [ovs-dev] [PATCH] Conntrack: Fix L4 Checksums in kernel <4.6 when using NAT and helpers

2016-12-28 Thread John Hurley
sorry, updated patch. Fix for a bug when sending a NATed packet to helper function in kernels <4.6. Setting CHECKSUM_PARTIAL flag can lead to L4 checksum corruption. Corruption can occur in datapath.c/queue_userspace_packet(). Giving the packet an skb_dst

Re: [ovs-dev] [PATCH] windows: WSAPoll broken on windows

2016-12-28 Thread Alin Serdean
Hi Guru, Sorry for the delayed response. Named pipes do not use WSAPoll, nor will it use select. I ran all the unit tests after I switched from WSAPoll to select and all was green. Isolation testing using select rather than WSAPoll show no increase in CPU consumption. Thanks, Alin. From:

[ovs-dev] [PATCH] Windows tests: Applications abort when using threading (ovs_rwlock_init)

2016-12-28 Thread Alin Serdean
Commit number: 1a15f390afd66efd161db78b86600832214dfb3c https://github.com/openvswitch/ovs/commit/1a15f390afd66efd161db78b86600832214dfb3c switched from `NULL` to `attr`. According to POSIX documentation this is correct, unfortunately on Windows the current implementation of pthreads does not

Re: [ovs-dev] [PATCH] Conntrack: Fix L4 Checksums in kernel <4.6 when using NAT and helpers

2016-12-28 Thread Ben Pfaff
On Wed, Dec 28, 2016 at 09:37:30PM +, John Hurley wrote: > Fix for a bug when sending a NATed packet to helper function in kernels > <4.6. > > Setting CHECKSUM_PARTIAL flag means packets could have L4 checksum > corrupted in > > datapath.c/queue_userspace_packet(). > > Giving the packet an

[ovs-dev] [PATCH 1/2] nroff: Improve formatting of ASCII diagrams.

2016-12-28 Thread Ben Pfaff
This makes diagrams in ASCII output look about as good as one might reasonably expect, so that in ovn-architecture(7), for example, this: . 9 bits: reserved (0) . 15 bits: ingress port . 16 bits: egress port . 24 bits: datapath now gets formatted as: 9 15 16 24

[ovs-dev] [PATCH 4/4 v4] ovsdb-idl: Autogenerated functions for compound indexes

2016-12-28 Thread Rodriguez Betancourt, Esteban
Generates and fill the default comparators for columns with type int, real, string. Also creates the macros that allow to iterate over the contents of the index, and perform queries. Signed-off-by: Arnoldo Lutz Guevara Signed-off-by: Esteban Rodriguez Betancourt

[ovs-dev] [PATCH 3/4 v4] ovsdb-idl: IDL Compound Indexes Implementation

2016-12-28 Thread Rodriguez Betancourt, Esteban
In the C IDL, allows to create multicolumn indexes in the tables, that are keep synched with the data in the replica. Signed-off-by: Esteban Rodriguez Betancourt --- lib/ovsdb-idl-provider.h | 29 +++ lib/ovsdb-idl.c | 495

[ovs-dev] [PATCH 2/4 v4] lib:Data structures: Skiplist implementation

2016-12-28 Thread Rodriguez Betancourt, Esteban
Skiplist implementation intended for the IDL compound indexes feature. Signed-off-by: Esteban Rodriguez Betancourt --- lib/automake.mk | 2 + lib/skiplist.c| 313 ++ lib/skiplist.h| 54 +

Re: [ovs-dev] ovs-vsctl add-br stuck on raspbian

2016-12-28 Thread Piyush Agarwal
Thank you much Ben. I uninstalled it all (apt-get remove/purge), rm -rf'ed all log files and gave it another go and things work fine now. I did notice that apt-get installs stuff at /var/run and /usr/bin, but there were some ovsdb-tool and other binaries in /usr/local/bin -- I really don't know

Re: [ovs-dev] ovs-vsctl add-br stuck on raspbian

2016-12-28 Thread Ben Pfaff
It looks like your database schema doesn't match the version of Open vSwitch you're using. I don't how that could have happened. Since this is a new installation, you might just stop OVS, delete the database, and then restart it. On Wed, Dec 28, 2016 at 06:17:01PM +, Piyush Agarwal wrote: >

Re: [ovs-dev] ovs-vsctl add-br stuck on raspbian

2016-12-28 Thread Piyush Agarwal
Here are the logs: On issuing "add-br br1", I see ovs-vsctl is just "stuck" and I see ovs-vswitchd.log printing messages continuously (please note the ID in jsonrpc request, this is incrementing continuously and has reached all the way to 6k so far!). (i) Are the missing columns a likely cause?

Re: [ovs-dev] [PATCH v4 2/2] ovn-trace: New --ovs option to also print OpenFlow flows.

2016-12-28 Thread Ben Pfaff
On Tue, Dec 27, 2016 at 11:13:01PM -0800, Justin Pettit wrote: > > On Dec 21, 2016, at 3:25 PM, Ben Pfaff wrote: > > > > Sometimes seeing the OpenFlow flows that back a given logical flow can > > provide additional insight. This commit adds a new --ovs option to > > ovn-trace that

Re: [ovs-dev] [PATCH v4 1/2] ovn-controller: Tie OpenFlow and logical flows using OpenFlow cookie.

2016-12-28 Thread Ben Pfaff
On Tue, Dec 27, 2016 at 10:28:18PM -0800, Justin Pettit wrote: > > > On Dec 21, 2016, at 3:25 PM, Ben Pfaff wrote: > > > > diff --git a/ovn/controller/ofctrl.c b/ovn/controller/ofctrl.c > > index 1d8fbf3..7449293 100644 > > --- a/ovn/controller/ofctrl.c > > +++

[ovs-dev] [PATCH v2 15/17] datapath: enable vxlangpe creation in compat mode

2016-12-28 Thread Yi Yang
Current out-of-tree ovs vxlan module has included vxlangpe code, but it can't create vxlangpe port, this patch enables out-of-tree ovs vxlan module to create vxlangpe port without Linux kernel v4.7 or above needed, this can ensure we can create vxlangpe port on any Linux system as long as Linux

[ovs-dev] [PATCH v2 17/17] userspace: add vxlan-gpe support for dpdk netdev

2016-12-28 Thread Yi Yang
Signed-off-by: Yi Yang --- include/openvswitch/automake.mk | 3 +- include/openvswitch/vxlangpe.h | 80 + lib/netdev-native-tnl.c | 59 +++--- lib/packets.c | 2 ++ 4 files changed,

[ovs-dev] [PATCH v2 16/17] userspace: enable layer3 option for vxlan-gpe

2016-12-28 Thread Yi Yang
Signed-off-by: Yi Yang --- lib/netdev-vport.c | 15 --- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/netdev-vport.c b/lib/netdev-vport.c index 9dd38fc..7f52afc 100644 --- a/lib/netdev-vport.c +++ b/lib/netdev-vport.c @@ -410,6 +410,7 @@

[ovs-dev] [PATCH v2 14/17] datapath: Fix skb->protocol for vlan frames

2016-12-28 Thread Yi Yang
Do not always set skb->protocol to be the ethertype of the L3 header. For a packet with non-accelerated VLAN tags skb->protocol needs to be the ethertype of the outermost non-accelerated VLAN ethertype. Any VLAN offloading is undone on the OVS netlink interface, and any VLAN tags added by

[ovs-dev] [PATCH v2 11/17] userspace: add non-tap (l3) support to GRE vports

2016-12-28 Thread Yi Yang
Add support for layer 3 GRE vports (non-tap aka non-VTEP). This makes use of a vport mode configuration for the existing (tap/VTEP) GRE vports. In order to differentiate packets for two different types of GRE vports a new flow key attribute, OVS_KEY_ATTR_NEXT_BASE_LAYER, is used. It is intended

[ovs-dev] [PATCH v2 13/17] datapath: Add a missing break statement

2016-12-28 Thread Yi Yang
Add a break statement to prevent fall-through from OVS_KEY_ATTR_ETHERNET to OVS_KEY_ATTR_TUNNEL. Without the break actions setting ethernet addresses fail to validate with log messages complaining about invalid tunnel attributes. Fixes: 0a6410fbde ("openvswitch: netlink: support L3 packets")

[ovs-dev] [PATCH v2 10/17] userspace: add layer 3 flow and switching support

2016-12-28 Thread Yi Yang
This commit relaxes the assumption that all packets have an Ethernet header, and adds support for layer 3 flows. For each packet received on the Linux kernel datapath the l2 and l3 members of struct ofpbuf are intialized appropriately, and some functions now expect this (notably flow_extract()),

[ovs-dev] [PATCH v2 07/17] datapath: add Ethernet push and pop actions

2016-12-28 Thread Yi Yang
>From net-next 91820da6ae85904d95ed53bf3a83f9ec44a6b80a. It's not allowed to push Ethernet header in front of another Ethernet header. It's not allowed to pop Ethernet header if there's a vlan tag. This preserves the invariant that L3 packet never has a vlan tag. Based on previous versions by

[ovs-dev] [PATCH v2 08/17] datapath: allow L3 netdev ports

2016-12-28 Thread Yi Yang
>From net-next commit 217ac77a3c2524d999730b2a80b61fcc2d0f734a. Allow ARPHRD_NONE interfaces to be added to ovs bridge. Based on previous versions by Lorand Jakab and Simon Horman. Signed-off-by: Lorand Jakab Signed-off-by: Simon Horman

[ovs-dev] [PATCH v2 06/17] datapath: netlink: support L3 packets

2016-12-28 Thread Yi Yang
>From net-next commit 0a6410fbde597ebcf82dda4a0b0e889e82242678. Extend the ovs flow netlink protocol to support L3 packets. Packets without OVS_KEY_ATTR_ETHERNET attribute specify L3 packets; for those, the OVS_KEY_ATTR_ETHERTYPE attribute is mandatory. Push/pop vlan actions are only supported

[ovs-dev] [PATCH v2 04/17] datapath: support MPLS push and pop for L3 packets

2016-12-28 Thread Yi Yang
>From net-next commit 1560a074df6297e76278e459ca3eb9ff83a6f878. Update Ethernet header only if there is one. Signed-off-by: Jiri Benc Acked-by: Pravin B Shelar Signed-off-by: David S. Miller Signed-off-by: Yi Yang

[ovs-dev] [PATCH v2 03/17] datapath: pass mac_proto to ovs_vport_send

2016-12-28 Thread Yi Yang
>From net-next commit e2d9d8358cb961340ef88620b6a25ba4557033d5 We'll need it to alter packets sent to ARPHRD_NONE interfaces. Change do_output() to use the actual L2 header size of the packet when deciding on the minimum cutlen. The assumption here is that what matters is not the output

[ovs-dev] [PATCH v2 02/17] datapath: add mac_proto field to the flow key

2016-12-28 Thread Yi Yang
>From net-next commit 329f45bc4f191c663dc156c510816411a4310578. Use a hole in the structure. We support only Ethernet so far and will add a support for L2-less packets shortly. We could use a bool to indicate whether the Ethernet header is present or not but the approach with the mac_proto field

[ovs-dev] [PATCH v2 00/17] port Jiri Benc's L3 patchset to ovs

2016-12-28 Thread Yi Yang
This patch set just ports Jiri Benc's L3 8 support patches for layer 3 encapsulated packets from net-next to current ovs, it also includes Jiri Benc's 3 userspace patches, Jarno Rajahalme and Pravin Shelar's vlan fix patches for L3 patchset as well as my 3 patches which enabled vxlangpe in compat

[ovs-dev] [PATCH v2 01/17] datapath: use hard_header_len instead of hardcoded ETH_HLEN

2016-12-28 Thread Yi Yang
>From net-next commit 738314a084aae5f76ff760279034b39d52c42e8b. On tx, use hard_header_len while deciding whether to refragment or drop the packet. That way, all combinations are calculated correctly: * L2 packet going to L2 interface (the L2 header len is subtracted), * L2 packet going to L3

[ovs-dev] Mist? Mrs Anne George, Nimeni on Anne George kansallisuus Canada perustuu minun omaksutun Maa Norsunluurannikko. Oikeastaan olen sairaalassa takia, koska minun sy?v?n sairaus sai minut ottaa

2016-12-28 Thread anne george
Mist? Mrs Anne George ___ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev

[ovs-dev] [PATCH 3/3] ovs-router: introduce pkt-mark.

2016-12-28 Thread Pravin B Shelar
OVS router is basically partial copy of linux kernel FIB. kernel routing table use skb-mark along with usual routing parameters. Following patch brings in support for skb-mark to ovs-router so that we can lookup route according to flow skb-mark. Signed-off-by: Pravin B Shelar

[ovs-dev] [PATCH 2/3] routing-table: parse skb-mark from RTNETLINK msg

2016-12-28 Thread Pravin B Shelar
Keep track of skb-mark of given RTNL routing notification. This will be used by next commit. Signed-off-by: Pravin B Shelar --- lib/route-table.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/lib/route-table.c b/lib/route-table.c index 00f95e3..61c8cd8 100644 ---

[ovs-dev] [PATCH 0/3] Tunnel: add support for packet marking

2016-12-28 Thread Pravin B Shelar
Following patch series adds support for setting packet mark for tunnel traffic. This allows better integration with linux networking stack. Pravin B Shelar (3): tunnel: Add support to configure ptk_mark routing-table: parse skb-mark from RTNETLINK msg ovs-router: introduce pkt-mark.

[ovs-dev] [PATCH v3 6/6] ovn: distributed NAT flows

2016-12-28 Thread Mickey Spiegel
This patch implements the flows required in the ingress and egress pipeline stages in order to support NAT on a distributed logical router. NAT functionality is associated with the logical router gateway port. The flows that carry out NAT functionality all have match conditions on inport or

[ovs-dev] [PATCH v3 4/6] ovn: move load balancing flows after NAT flows

2016-12-28 Thread Mickey Spiegel
This will make it easy for distributed NAT to reuse some of the existing code for NAT flows, while leaving load balancing and defrag as functionality specific to gateway routers. There is no intent to change any functionality in this patch. Signed-off-by: Mickey Spiegel

[ovs-dev] [PATCH v3 3/6] ovn: add egress loopback capability

2016-12-28 Thread Mickey Spiegel
This patch adds the capability to force loopback at the end of the egress pipeline. A new flags.force_egress_loopback symbol is defined, along with corresponding flags bits. When flags.force_egress_loopback is set, at OFTABLE_LOG_TO_PHY, instead of the packet being sent out to the peer patch

[ovs-dev] [PATCH v3 2/6] ovn: Introduce "chassisredirect" port binding

2016-12-28 Thread Mickey Spiegel
Currently OVN handles all logical router ports in a distributed manner, creating instances on each chassis. The logical router ingress and egress pipelines are traversed locally on the source chassis. In order to support advanced features such as one-to-many NAT (aka IP masquerading), where

[ovs-dev] [PATCH v3 0/6] ovn: add distributed NAT capability

2016-12-28 Thread Mickey Spiegel
Currently OVN supports NAT functionality by connecting each distributed logical router to a centralized "l3gateway" router that resides on a single chassis. NAT is only carried out in the "l3gateway" router. This patch set introduces NAT capability in the distributed logical router itself,

[ovs-dev] [PATCH v3 1/6] ovn: add is_chassis_resident match expression component

2016-12-28 Thread Mickey Spiegel
This patch introduces a new match expression component is_chassis_resident(). Unlike match expression comparisons, is_chassis_resident is not pushed down to OpenFlow. It is a conditional that is evaluated in the controller during expr_simplify(), when it is replaced by a boolean expression. The

[ovs-dev] [PATCH v1] ovn: Cache mac bindings from broadcasted dynamic ARP responses

2016-12-28 Thread Babu Shanmugam
This patch attempts to avoid the usage of MAC_Binding table. Dynamic ARP response originates from the logical ports with "unknown" address. When the ARP resolution is requested via a logical router datapath, ARP response will be delivered to the logical router port of the switch. Since the