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
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
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
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
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,
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
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]
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
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
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
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
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:
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
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
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
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
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
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 +
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
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:
>
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?
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
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
> > +++
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
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,
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 @@
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
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
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")
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()),
>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
>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
>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
>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
>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
>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
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
>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
Mist? Mrs Anne George
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev
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
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
---
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.
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
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
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
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
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,
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
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
49 matches
Mail list logo