[ovs-dev] dd
___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] dd
___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] [PATCH] ofp-parse: Fix sparse warnings about comparing ofp_port_ts.
Without this, sparse complains: lib/ofp-parse.c:588:19: warning: restricted ofp_port_t degrades to integer lib/ofp-parse.c:588:31: warning: restricted ofp_port_t degrades to integer This is one of the irritating bits of using sparse, but on the whole I think it saves us pretty often. CC: Jarno RajahalmeFixes: 6dd3c787f591 ("ofproto: Support packet_outs in bundles.") Signed-off-by: Ben Pfaff --- lib/ofp-parse.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/ofp-parse.c b/lib/ofp-parse.c index 0568fc7..a347b53 100644 --- a/lib/ofp-parse.c +++ b/lib/ofp-parse.c @@ -585,7 +585,8 @@ parse_ofp_packet_out_str__(struct ofputil_packet_out *po, char *string, error = xasprintf("%s is not a valid OpenFlow port", value); goto out; } -if (po->in_port > OFPP_MAX && po->in_port != OFPP_LOCAL +if (ofp_to_u16(po->in_port) > ofp_to_u16(OFPP_MAX) +&& po->in_port != OFPP_LOCAL && po->in_port != OFPP_NONE && po->in_port != OFPP_CONTROLLER) { error = xasprintf( -- 2.1.3 ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH 1/2] ofproto: Remove double reporting from bundles.
On Wed, Sep 14, 2016 at 07:25:34PM -0700, Jarno Rajahalme wrote: > Patch b0d38b2f17 unified flow mod reporting in ofproto for both > stand-alone flow mods and bundle flow mods, but left bundle-specific > reporting to the bundle removal code. This patch fixes this by > removing the bundle-specific reporting of flow mods. > > Found by inspection. > > Fixes: b0d38b2f17 ("ofproto: Report flow mods also from bundles.") > Signed-off-by: Jarno RajahalmeNice. Should this be covered by a test? Acked-by: Ben Pfaff ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH 2/2] NEWS: Memory efficiency improvements.
On Wed, Sep 14, 2016 at 07:25:35PM -0700, Jarno Rajahalme wrote: > Mention both flow table and bundle memory efficiency improvements. > > Signed-off-by: Jarno RajahalmeAcked-by: Ben Pfaff ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH v2] xlate: Use dp_hash for select groups.
On Wed, Sep 14, 2016 at 08:51:42PM -0700, Ben Pfaff wrote: > On Mon, Sep 12, 2016 at 04:16:08PM -0700, Jarno Rajahalme wrote: > > Add a new select group selection method "dp_hash", which uses minimal > > number of bits from the datapath calculated packet hash to inform the > > select group bucket selection. This makes the datapath flows more > > generic resulting in less upcalls to userspace, but adds recirculation > > prior to group selection. > > > > Signed-off-by: Jarno Rajahalme> > --- > > v2: Rebase and documentation. > > Thanks for adding the documentation! It describes the syntax, which is > useful. To make it even more helpful, I would suggest adding some > advice to the user to explain when one might best choose one or the > other. > > I think that the dp_hash method ignores fields specified by the user if > any are given, so the documentation might mention that for dp_hash the > "fields" option should be omitted. > > Thanks! > > Acked-by: Ben Pfaff Oh, I forgot to say that I get a compiler warning: ../ofproto/ofproto-dpif-xlate.c: In function 'xlate_dp_hash_select_group': ../ofproto/ofproto-dpif-xlate.c:3410:32: error: variable 'buckets' set but not used [-Werror=unused-but-set-variable] const struct ovs_list *buckets; Fixed by: diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c index c83132c..a74daa7 100644 --- a/ofproto/ofproto-dpif-xlate.c +++ b/ofproto/ofproto-dpif-xlate.c @@ -3407,10 +3407,8 @@ xlate_dp_hash_select_group(struct xlate_ctx *ctx, struct group_dpif *group) ctx_trigger_recirculate_with_hash(ctx, param >> 32, (uint32_t)param); } else { -const struct ovs_list *buckets; uint32_t n_buckets; - -buckets = group_dpif_get_buckets(group, _buckets); +group_dpif_get_buckets(group, _buckets); if (n_buckets) { /* Minimal mask to cover the number of buckets. */ uint32_t mask = (1 << log_2_ceil(n_buckets)) - 1; ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH v2] xlate: Use dp_hash for select groups.
On Mon, Sep 12, 2016 at 04:16:08PM -0700, Jarno Rajahalme wrote: > Add a new select group selection method "dp_hash", which uses minimal > number of bits from the datapath calculated packet hash to inform the > select group bucket selection. This makes the datapath flows more > generic resulting in less upcalls to userspace, but adds recirculation > prior to group selection. > > Signed-off-by: Jarno Rajahalme> --- > v2: Rebase and documentation. Thanks for adding the documentation! It describes the syntax, which is useful. To make it even more helpful, I would suggest adding some advice to the user to explain when one might best choose one or the other. I think that the dp_hash method ignores fields specified by the user if any are given, so the documentation might mention that for dp_hash the "fields" option should be omitted. Thanks! Acked-by: Ben Pfaff ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH] stream-unix: only use path-based socket names
On Fri, Sep 09, 2016 at 02:23:17PM -0700, Joe Stringer wrote: > On 9 September 2016 at 14:05, Ben Pfaffwrote: > > On Fri, Sep 09, 2016 at 01:47:01PM -0700, Joe Stringer wrote: > >> On 19 July 2016 at 20:08, Ben Pfaff wrote: > >> > On Tue, Jul 19, 2016 at 05:05:51PM -0300, Thadeu Lima de Souza Cascardo > >> > wrote: > >> >> FreeBSD returns a socklen of sockaddr_storage when doing an accept on > >> >> an unix > >> >> STREAM socket. The current code will assume it means a sun_path larger > >> >> than 0. > >> >> > >> >> That breaks some tests like the one below which don't expect to find > >> >> "unix::" on > >> >> the logs. > >> >> > >> >> As a Linux abstract address would not have a more useful name either, > >> >> it's > >> >> better to check that sun_path starts with a non-zero byte and return 0 > >> >> length in > >> >> case it doesn't. > >> >> > >> >> 402: ovs-ofctl replace-flows with --bundle FAILED > >> >> (ovs-ofctl.at:2928) > >> >> 2016-07-08T12:44:30.068Z|00020|vconn|DBG|unix:: sent (Success): > >> >> OFPT_HELLO (OF1.6) (xid=0x1): > >> >> > >> >> Signed-off-by: Thadeu Lima de Souza Cascardo > >> > > >> > Applied, thanks! > >> > >> For what it's worth, this introduces a warning on my Linux x86_64 > >> machine with valgrind: > >> > >> ==18725== Conditional jump or move depends on uninitialised value(s) > >> ==18725==at 0x45BF65: get_unix_name_len (socket-util-unix.c:392) > >> ==18725==by 0x45C842: punix_accept (stream-unix.c:113) > >> ==18725==by 0x46897B: pfd_accept (stream-fd.c:263) > >> ==18725==by 0x44CF6F: pstream_accept (stream.c:557) > >> ==18725==by 0x44FE6C: unixctl_server_run (unixctl.c:385) > >> ==18725==by 0x4081AC: main_loop (ovsdb-server.c:182) > >> ==18725==by 0x406432: main (ovsdb-server.c:429) > > > > Does this help? > > > > diff --git a/lib/socket-util-unix.c b/lib/socket-util-unix.c > > index 5d4b88c..a7a7e03 100644 > > --- a/lib/socket-util-unix.c > > +++ b/lib/socket-util-unix.c > > @@ -389,7 +389,7 @@ error: > > int > > get_unix_name_len(const struct sockaddr_un *sun, socklen_t sun_len) > > { > > -return (sun_len >= offsetof(struct sockaddr_un, sun_path) && > > +return (sun_len > offsetof(struct sockaddr_un, sun_path) && > > sun->sun_path[0] != 0 > > ? sun_len - offsetof(struct sockaddr_un, sun_path) > > : 0); > > Yup, I don't see the valgrind warning with this change applied. Thanks for testing. I sent this formally for review: https://patchwork.ozlabs.org/patch/670199/ ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] [PATCH] socket-util-unix: Avoid buffer read overrun in get_unix_name_len().
If the socket length does not include any of the bytes of the path, then the code should not read even the first byte of the path. Found by valgrind. CC: Thadeu Lima de Souza CascardoReported-by: Joe Stringer Signed-off-by: Ben Pfaff --- lib/socket-util-unix.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/socket-util-unix.c b/lib/socket-util-unix.c index 5d4b88c..59f63fc 100644 --- a/lib/socket-util-unix.c +++ b/lib/socket-util-unix.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Nicira, Inc. + * Copyright (c) 2014, 2016 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -389,7 +389,7 @@ error: int get_unix_name_len(const struct sockaddr_un *sun, socklen_t sun_len) { -return (sun_len >= offsetof(struct sockaddr_un, sun_path) && +return (sun_len > offsetof(struct sockaddr_un, sun_path) && sun->sun_path[0] != 0 ? sun_len - offsetof(struct sockaddr_un, sun_path) : 0); -- 2.1.3 ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH] ovn: make ipam tests more reliable
On Wed, Sep 14, 2016 at 08:23:44PM -0400, Lance Richardson wrote: > > From: "Ben Pfaff"> > To: "Lance Richardson" > > Cc: dev@openvswitch.org > > Sent: Wednesday, September 14, 2016 8:03:16 PM > > Subject: Re: [ovs-dev] [PATCH] ovn: make ipam tests more reliable > > > > On Wed, Sep 14, 2016 at 07:30:50PM -0400, Lance Richardson wrote: > > > After adding log messages to better understand IPAM-related code > > > in ovn northd, the IPAM tests began to fail occasionally. Adding > > > --wait=sb to commands triggering address allocation eliminated > > > these failures (there were no failures with 100 executions when > > > testing with this change). > > > > > > Signed-off-by: Lance Richardson > > > > I think that this adds more "--wait"s than strictly necessary (it's only > > really useful on the last ovn-nbctl call in a series of them) but that's > > not really harmful (except to performance), so I applied it to master > > and branch-2.6. > > > I did wonder whether it might be worthwhile to avoid the --wait > in each iteration of the loop and just have one --wait after the loop, but > I wasn't sure about the best way to go about doing that. One option is to add a separate "ovn-nbctl --wait=sb sync" command after the changes. > This was the first time I had tried using the --wait option, it's a nice > addition and much better than trying to band-aid with sleeps. I am not sure that it is completely fail-safe at this point, but I think it is a big step forward. ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] [PATCH 1/2] ofproto: Remove double reporting from bundles.
Patch b0d38b2f17 unified flow mod reporting in ofproto for both stand-alone flow mods and bundle flow mods, but left bundle-specific reporting to the bundle removal code. This patch fixes this by removing the bundle-specific reporting of flow mods. Found by inspection. Fixes: b0d38b2f17 ("ofproto: Report flow mods also from bundles.") Signed-off-by: Jarno Rajahalme--- ofproto/bundles.c | 20 +++- ofproto/bundles.h | 2 +- ofproto/connmgr.c | 4 ++-- ofproto/ofproto.c | 2 +- 4 files changed, 11 insertions(+), 17 deletions(-) diff --git a/ofproto/bundles.c b/ofproto/bundles.c index e0b4b7d..24ea1ae 100644 --- a/ofproto/bundles.c +++ b/ofproto/bundles.c @@ -62,16 +62,11 @@ ofp_bundle_create(uint32_t id, uint16_t flags, const struct ofp_header *oh) } void -ofp_bundle_remove__(struct ofconn *ofconn, struct ofp_bundle *bundle, -bool success) +ofp_bundle_remove__(struct ofconn *ofconn, struct ofp_bundle *bundle) { struct ofp_bundle_entry *msg; LIST_FOR_EACH_POP (msg, node, >msg_list) { -if (success && msg->type == OFPTYPE_FLOW_MOD) { -/* Tell connmgr about successful flow mods. */ -ofconn_report_flow_mod(ofconn, msg->ofm.command); -} ofp_bundle_entry_free(msg); } @@ -90,7 +85,7 @@ ofp_bundle_open(struct ofconn *ofconn, uint32_t id, uint16_t flags, if (bundle) { VLOG_INFO("Bundle %x already exists.", id); -ofp_bundle_remove__(ofconn, bundle, false); +ofp_bundle_remove__(ofconn, bundle); return OFPERR_OFPBFC_BAD_ID; } @@ -116,12 +111,12 @@ ofp_bundle_close(struct ofconn *ofconn, uint32_t id, uint16_t flags) } if (bundle->state == BS_CLOSED) { -ofp_bundle_remove__(ofconn, bundle, false); +ofp_bundle_remove__(ofconn, bundle); return OFPERR_OFPBFC_BUNDLE_CLOSED; } if (bundle->flags != flags) { -ofp_bundle_remove__(ofconn, bundle, false); +ofp_bundle_remove__(ofconn, bundle); return OFPERR_OFPBFC_BAD_FLAGS; } @@ -141,8 +136,7 @@ ofp_bundle_discard(struct ofconn *ofconn, uint32_t id) return OFPERR_OFPBFC_BAD_ID; } -ofp_bundle_remove__(ofconn, bundle, false); - +ofp_bundle_remove__(ofconn, bundle); return 0; } @@ -165,10 +159,10 @@ ofp_bundle_add_message(struct ofconn *ofconn, uint32_t id, uint16_t flags, return error; } } else if (bundle->state == BS_CLOSED) { -ofp_bundle_remove__(ofconn, bundle, false); +ofp_bundle_remove__(ofconn, bundle); return OFPERR_OFPBFC_BUNDLE_CLOSED; } else if (flags != bundle->flags) { -ofp_bundle_remove__(ofconn, bundle, false); +ofp_bundle_remove__(ofconn, bundle); return OFPERR_OFPBFC_BAD_FLAGS; } diff --git a/ofproto/bundles.h b/ofproto/bundles.h index 1818b16..dd64700 100644 --- a/ofproto/bundles.h +++ b/ofproto/bundles.h @@ -83,7 +83,7 @@ enum ofperr ofp_bundle_add_message(struct ofconn *, uint32_t id, uint16_t flags, struct ofp_bundle_entry *, const struct ofp_header *); -void ofp_bundle_remove__(struct ofconn *, struct ofp_bundle *, bool success); +void ofp_bundle_remove__(struct ofconn *, struct ofp_bundle *); static inline struct ofp_bundle_entry * ofp_bundle_entry_alloc(enum ofptype type, const struct ofp_header *oh) diff --git a/ofproto/connmgr.c b/ofproto/connmgr.c index 6377245..4b927d6 100644 --- a/ofproto/connmgr.c +++ b/ofproto/connmgr.c @@ -1234,7 +1234,7 @@ bundle_remove_all(struct ofconn *ofconn) struct ofp_bundle *b, *next; HMAP_FOR_EACH_SAFE (b, next, node, >bundles) { -ofp_bundle_remove__(ofconn, b, false); +ofp_bundle_remove__(ofconn, b); } } @@ -1247,7 +1247,7 @@ bundle_remove_expired(struct ofconn *ofconn, long long int now) HMAP_FOR_EACH_SAFE (b, next, node, >bundles) { if (b->used <= limit) { ofconn_send_error(ofconn, >ofp_msg, OFPERR_OFPBFC_TIMEOUT); -ofp_bundle_remove__(ofconn, b, false); +ofp_bundle_remove__(ofconn, b); } } } diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c index 90b1ffa..f89f0ef 100644 --- a/ofproto/ofproto.c +++ b/ofproto/ofproto.c @@ -7590,7 +7590,7 @@ do_bundle_commit(struct ofconn *ofconn, uint32_t id, uint16_t flags) } /* The bundle is discarded regardless the outcome. */ -ofp_bundle_remove__(ofconn, bundle, !error); +ofp_bundle_remove__(ofconn, bundle); return error; } -- 2.1.4 ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] [PATCH 2/2] NEWS: Memory efficiency improvements.
Mention both flow table and bundle memory efficiency improvements. Signed-off-by: Jarno Rajahalme--- NEWS | 8 1 file changed, 8 insertions(+) diff --git a/NEWS b/NEWS index a1ca864..6cc01eb 100644 --- a/NEWS +++ b/NEWS @@ -29,6 +29,14 @@ v2.6.0 - xx xxx * OpenFlow 1.3+ bundles are now supported for group mods as well as flow mods and port mods. Both 'atomic' and 'ordered' bundle flags are supported for group mods as well as flow mods. + * Internal OpenFlow rule representation for load and set-field + actions is now much more memory efficient. For a complex flow + table this can reduce rule memory consumption by 40%. + * Bundles are now much more memory efficient than in OVS 2.5. + Together with memory efficiency improvements in OpenFlow rule + representation, the peak OVS resident memory use during a + bundle commit for large complex set of flow mods can be only + 25% of that in OVS 2.5 (4x lower). * OpenFlow 1.1+ OFPT_QUEUE_GET_CONFIG_REQUEST now supports OFPP_ANY. * OpenFlow 1.4+ OFPMP_QUEUE_DESC is now supported. * OpenFlow 1.4+ OFPT_TABLE_STATUS is now supported. -- 2.1.4 ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] Documents Requested
Dear dev, Please find attached documents as requested. Best Regards, Gracie ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] Documents Requested
Dear dev, Please find attached documents as requested. Best Regards, Leola ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] [PATCH v3 4/7] system-traffic: 802.1ad: Add conntrack ping tests for CVLANs.
Signed-off-by: Eric Garver--- tests/system-traffic.at | 107 1 file changed, 107 insertions(+) diff --git a/tests/system-traffic.at b/tests/system-traffic.at index 83c7b8a2f4e5..bb0cb02804f9 100644 --- a/tests/system-traffic.at +++ b/tests/system-traffic.at @@ -1868,6 +1868,59 @@ NS_CHECK_EXEC([at_ns0], [ping -s 3200 -q -c 3 -i 0.3 -w 2 10.2.2.2 | FORMAT_PING OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP +AT_SETUP([conntrack - IPv4 fragmentation + cvlan]) +CHECK_CONNTRACK() +CHECK_CONNTRACK_FRAG() +OVS_TRAFFIC_VSWITCHD_START() +OVS_CHECK_8021AD() + +ADD_NAMESPACES(at_ns0, at_ns1) + +ADD_VETH(p0, at_ns0, br0, "10.1.1.1/24") +ADD_VETH(p1, at_ns1, br0, "10.1.1.2/24") + +ADD_SVLAN(p0, at_ns0, 4094, "10.255.2.1/24") +ADD_SVLAN(p1, at_ns1, 4094, "10.255.2.2/24") + +ADD_CVLAN(p0.4094, at_ns0, 100, "10.2.2.1/24") +ADD_CVLAN(p1.4094, at_ns1, 100, "10.2.2.2/24") + +dnl Sending ping through conntrack +AT_DATA([flows.txt], [dnl +priority=1,action=drop +priority=10,arp,action=normal +priority=100,in_port=1,icmp,action=ct(commit,zone=9),2 +priority=100,in_port=2,ct_state=-trk,icmp,action=ct(table=0,zone=9) +priority=100,in_port=2,ct_state=+trk+est-new,icmp,action=1 +]) + +AT_CHECK([ovs-ofctl --bundle add-flows br0 flows.txt]) + +OVS_WAIT_UNTIL([ip netns exec at_ns0 ping -c 1 10.2.2.2]) + +dnl Ipv4 fragmentation connectivity check. +NS_CHECK_EXEC([at_ns0], [ping -s 1600 -q -c 3 -i 0.3 -w 2 10.2.2.2 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +dnl Ipv4 fragmentation connectivity check. (outer svlan) +NS_CHECK_EXEC([at_ns0], [ping -s 1600 -q -c 3 -i 0.3 -w 2 10.255.2.2 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +dnl Ipv4 larger fragmentation connectivity check. +NS_CHECK_EXEC([at_ns0], [ping -s 3200 -q -c 3 -i 0.3 -w 2 10.2.2.2 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +dnl Ipv4 larger fragmentation connectivity check. (outer svlan) +NS_CHECK_EXEC([at_ns0], [ping -s 3200 -q -c 3 -i 0.3 -w 2 10.255.2.2 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +OVS_TRAFFIC_VSWITCHD_STOP +AT_CLEANUP + AT_SETUP([conntrack - IPv6 fragmentation]) CHECK_CONNTRACK() CHECK_CONNTRACK_FRAG() @@ -1992,6 +2045,60 @@ NS_CHECK_EXEC([at_ns0], [ping6 -s 3200 -q -c 3 -i 0.3 -w 2 fc00:1::4 | FORMAT_PI OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP +AT_SETUP([conntrack - IPv6 fragmentation + cvlan]) +CHECK_CONNTRACK() +CHECK_CONNTRACK_FRAG() +OVS_TRAFFIC_VSWITCHD_START() +OVS_CHECK_8021AD() + +ADD_NAMESPACES(at_ns0, at_ns1) + +ADD_VETH(p0, at_ns0, br0, "fc00::1/96") +ADD_VETH(p1, at_ns1, br0, "fc00::2/96") + +ADD_SVLAN(p0, at_ns0, 4094, "fc00:::3/96") +ADD_SVLAN(p1, at_ns1, 4094, "fc00:::4/96") + +ADD_CVLAN(p0.4094, at_ns0, 100, "fc00:1::3/96") +ADD_CVLAN(p1.4094, at_ns1, 100, "fc00:1::4/96") + +dnl Sending ping through conntrack +AT_DATA([flows.txt], [dnl +priority=1,action=drop +priority=10,in_port=1,ipv6,action=ct(commit,zone=9),2 +priority=10,in_port=2,ct_state=-trk,ipv6,action=ct(table=0,zone=9) +priority=10,in_port=2,ct_state=+trk+est-new,ipv6,action=1 +priority=100,icmp6,icmp_type=135,action=normal +priority=100,icmp6,icmp_type=136,action=normal +]) + +AT_CHECK([ovs-ofctl --bundle add-flows br0 flows.txt]) + +OVS_WAIT_UNTIL([ip netns exec at_ns0 ping6 -c 1 fc00:1::4]) + +dnl Ipv6 fragmentation connectivity check. +NS_CHECK_EXEC([at_ns0], [ping6 -s 1600 -q -c 3 -i 0.3 -w 2 fc00:1::4 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +dnl Ipv6 fragmentation connectivity check. (outer svlan) +NS_CHECK_EXEC([at_ns0], [ping6 -s 1600 -q -c 3 -i 0.3 -w 2 fc00:::4 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +dnl Ipv6 larger fragmentation connectivity check. +NS_CHECK_EXEC([at_ns0], [ping6 -s 3200 -q -c 3 -i 0.3 -w 2 fc00:1::4 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +dnl Ipv6 larger fragmentation connectivity check. (outer svlan) +NS_CHECK_EXEC([at_ns0], [ping6 -s 3200 -q -c 3 -i 0.3 -w 2 fc00:::4 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +OVS_TRAFFIC_VSWITCHD_STOP +AT_CLEANUP + AT_SETUP([conntrack - Fragmentation over vxlan]) OVS_CHECK_VXLAN() CHECK_CONNTRACK() -- 2.5.5 ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] [PATCH v3 6/7] system-traffic: 802.1ad: Add push/pop test cases.
Two test cases to push and pop an outer tag between two "customer" bridges. One to push/pop 0x88a8. One to push/pop a second 0x8100. Signed-off-by: Eric Garver--- tests/system-traffic.at | 112 1 file changed, 112 insertions(+) diff --git a/tests/system-traffic.at b/tests/system-traffic.at index 5c6084a792f7..ce02c9e8c453 100644 --- a/tests/system-traffic.at +++ b/tests/system-traffic.at @@ -3115,3 +3115,115 @@ NS_CHECK_EXEC([at_ns0], [ping -q -c 1 -w 3 10.2.2.2], [1], [ignore]) OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP + + +AT_SETUP([802.1ad - push/pop outer 802.1ad]) +OVS_TRAFFIC_VSWITCHD_START() +OVS_CHECK_8021AD() + +ADD_BR([br1]) +ADD_BR([br2]) +ADD_NAMESPACES(at_ns0, at_ns1) + +AT_CHECK([ip link add ovs-p0 type veth peer name ovs-p1]) +AT_CHECK([ip link set dev ovs-p0 up]) +AT_CHECK([ip link set dev ovs-p1 up]) +AT_CHECK([ovs-vsctl add-port br0 ovs-p0]) +AT_CHECK([ovs-vsctl add-port br1 ovs-p1]) +on_exit 'ip link del ovs-p0' + +AT_CHECK([ip link add ovs-p2 type veth peer name ovs-p3]) +AT_CHECK([ip link set dev ovs-p2 up]) +AT_CHECK([ip link set dev ovs-p3 up]) +AT_CHECK([ovs-vsctl add-port br0 ovs-p2]) +AT_CHECK([ovs-vsctl add-port br2 ovs-p3]) +on_exit 'ip link del ovs-p2' + +ADD_VETH(p4, at_ns0, br1, "10.1.1.1/24") +ADD_VETH(p5, at_ns1, br2, "10.1.1.2/24") +ADD_CVLAN(p4, at_ns0, 100, "10.2.2.1/24") +ADD_CVLAN(p5, at_ns1, 100, "10.2.2.2/24") + +AT_DATA([flows-br0.txt], [dnl +priority=1 action=drop +priority=100 in_port=1 action=push_vlan:0x88a8,mod_vlan_vid=4094,output:2 +priority=100 in_port=2 action=push_vlan:0x88a8,mod_vlan_vid=4094,output:1 +]) + +AT_DATA([flows-customer-br.txt], [dnl +priority=1 action=normal +priority=100 in_port=1 vlan_tci=0x1000/0x1000 action=pop_vlan,normal +]) + +AT_CHECK([ovs-ofctl --bundle add-flows br0 flows-br0.txt]) +AT_CHECK([ovs-ofctl --bundle add-flows br1 flows-customer-br.txt]) +AT_CHECK([ovs-ofctl --bundle add-flows br2 flows-customer-br.txt]) + +OVS_WAIT_UNTIL([ip netns exec at_ns0 ping -c 1 10.2.2.2]) + +NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 10.2.2.2 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +NS_CHECK_EXEC([at_ns0], [ping -s 1600 -q -c 3 -i 0.3 -w 2 10.2.2.2 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +OVS_TRAFFIC_VSWITCHD_STOP +AT_CLEANUP + + +AT_SETUP([802.1ad - push/pop outer 802.1q]) +OVS_TRAFFIC_VSWITCHD_START() +OVS_CHECK_8021AD() + +ADD_BR([br1]) +ADD_BR([br2]) +ADD_NAMESPACES(at_ns0, at_ns1) + +AT_CHECK([ip link add ovs-p0 type veth peer name ovs-p1]) +AT_CHECK([ip link set dev ovs-p0 up]) +AT_CHECK([ip link set dev ovs-p1 up]) +AT_CHECK([ovs-vsctl add-port br0 ovs-p0]) +AT_CHECK([ovs-vsctl add-port br1 ovs-p1]) +on_exit 'ip link del ovs-p0' + +AT_CHECK([ip link add ovs-p2 type veth peer name ovs-p3]) +AT_CHECK([ip link set dev ovs-p2 up]) +AT_CHECK([ip link set dev ovs-p3 up]) +AT_CHECK([ovs-vsctl add-port br0 ovs-p2]) +AT_CHECK([ovs-vsctl add-port br2 ovs-p3]) +on_exit 'ip link del ovs-p2' + +ADD_VETH(p4, at_ns0, br1, "10.1.1.1/24") +ADD_VETH(p5, at_ns1, br2, "10.1.1.2/24") +ADD_CVLAN(p4, at_ns0, 100, "10.2.2.1/24") +ADD_CVLAN(p5, at_ns1, 100, "10.2.2.2/24") + +AT_DATA([flows-br0.txt], [dnl +priority=1 action=drop +priority=100 in_port=1 action=push_vlan:0x8100,mod_vlan_vid=4094,output:2 +priority=100 in_port=2 action=push_vlan:0x8100,mod_vlan_vid=4094,output:1 +]) + +AT_DATA([flows-customer-br.txt], [dnl +priority=1 action=normal +priority=100 in_port=1 vlan_tci=0x1000/0x1000 action=pop_vlan,normal +]) + +AT_CHECK([ovs-ofctl --bundle add-flows br0 flows-br0.txt]) +AT_CHECK([ovs-ofctl --bundle add-flows br1 flows-customer-br.txt]) +AT_CHECK([ovs-ofctl --bundle add-flows br2 flows-customer-br.txt]) + +OVS_WAIT_UNTIL([ip netns exec at_ns0 ping -c 1 10.2.2.2]) + +NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 10.2.2.2 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +NS_CHECK_EXEC([at_ns0], [ping -s 1600 -q -c 3 -i 0.3 -w 2 10.2.2.2 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +OVS_TRAFFIC_VSWITCHD_STOP +AT_CLEANUP -- 2.5.5 ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] [PATCH v3 7/7] system-traffic: 802.1ad: Add dot1q-tunnel test case.
Test case for dot1q-tunnel between two "customer" bridges. Signed-off-by: Eric Garver--- tests/system-traffic.at | 63 + 1 file changed, 63 insertions(+) diff --git a/tests/system-traffic.at b/tests/system-traffic.at index ce02c9e8c453..ccfb6096d93b 100644 --- a/tests/system-traffic.at +++ b/tests/system-traffic.at @@ -3227,3 +3227,66 @@ NS_CHECK_EXEC([at_ns0], [ping -s 1600 -q -c 3 -i 0.3 -w 2 10.2.2.2 | FORMAT_PING OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP + + +AT_SETUP([802.1ad - 802.1q tunnel]) +OVS_TRAFFIC_VSWITCHD_START() +OVS_CHECK_8021AD() + +ADD_BR([br1]) +ADD_BR([br2]) +ADD_NAMESPACES(at_ns0, at_ns1) + +AT_CHECK([ip link add ovs-p0 type veth peer name ovs-p1]) +AT_CHECK([ip link set dev ovs-p0 up]) +AT_CHECK([ip link set dev ovs-p1 up]) +AT_CHECK([ovs-vsctl add-port br0 ovs-p0]) +AT_CHECK([ovs-vsctl add-port br1 ovs-p1]) +on_exit 'ip link del ovs-p0' + +AT_CHECK([ip link add ovs-p2 type veth peer name ovs-p3]) +AT_CHECK([ip link set dev ovs-p2 up]) +AT_CHECK([ip link set dev ovs-p3 up]) +AT_CHECK([ovs-vsctl add-port br0 ovs-p2]) +AT_CHECK([ovs-vsctl add-port br2 ovs-p3]) +on_exit 'ip link del ovs-p2' + +ADD_VETH(p4, at_ns0, br1, "10.1.1.1/24") +ADD_VETH(p5, at_ns1, br2, "10.1.1.2/24") +ADD_CVLAN(p4, at_ns0, 100, "10.2.2.1/24") +ADD_CVLAN(p5, at_ns1, 100, "10.2.2.2/24") +ADD_CVLAN(p4, at_ns0, 200, "10.3.2.1/24") +ADD_CVLAN(p5, at_ns1, 200, "10.3.2.2/24") +ADD_CVLAN(p4, at_ns0, 300, "10.4.2.1/24") +ADD_CVLAN(p5, at_ns1, 300, "10.4.2.2/24") + +AT_CHECK([ovs-ofctl add-flow br0 action=normal]) +AT_CHECK([ovs-ofctl add-flow br1 action=normal]) +AT_CHECK([ovs-ofctl add-flow br2 action=normal]) +AT_CHECK([ovs-vsctl set port ovs-p0 vlan_mode=dot1q-tunnel tag=4094 cvlans=100,200]) +AT_CHECK([ovs-vsctl set port ovs-p2 vlan_mode=dot1q-tunnel tag=4094 cvlans=100,200]) + +OVS_WAIT_UNTIL([ip netns exec at_ns0 ping -c 1 10.2.2.2]) +OVS_WAIT_UNTIL([ip netns exec at_ns0 ping -c 1 10.3.2.2]) + +NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 10.2.2.2 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 10.3.2.2 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +NS_CHECK_EXEC([at_ns0], [ping -s 1600 -q -c 3 -i 0.3 -w 2 10.2.2.2 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +NS_CHECK_EXEC([at_ns0], [ping -s 1600 -q -c 3 -i 0.3 -w 2 10.3.2.2 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +dnl CVLAN 300 is not permitted by dot1q-tunnel +NS_CHECK_EXEC([at_ns0], [ping -q -c 1 -w 3 10.4.2.2], [1], [ignore]) + +OVS_TRAFFIC_VSWITCHD_STOP(["/dropping VLAN \(0\|300\).*dot1q tunneling/d"]) +AT_CLEANUP -- 2.5.5 ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] [PATCH v3 5/7] system-traffic: 802.1ad: Add vlan_limit test case.
Verify that vlan_limit works as expected and preserves legacy dl_type matching behavior. Signed-off-by: Eric Garver--- tests/system-traffic.at | 35 +++ 1 file changed, 35 insertions(+) diff --git a/tests/system-traffic.at b/tests/system-traffic.at index bb0cb02804f9..5c6084a792f7 100644 --- a/tests/system-traffic.at +++ b/tests/system-traffic.at @@ -3080,3 +3080,38 @@ ovs-ofctl -O OpenFlow15 dump-group-stats br0 OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP + + +AT_SETUP([802.1ad - vlan_limit]) +OVS_TRAFFIC_VSWITCHD_START() +OVS_CHECK_8021AD() + +dnl Drop the vlan limit to verify backward compatibility with old ethertype +dnl matching behavior. +AT_CHECK([ovs-vsctl set Open_vSwitch . other_config:vlan-limit=1]) + +ADD_NAMESPACES(at_ns0, at_ns1) + +ADD_VETH(p0, at_ns0, br0, "10.1.1.1/24") +ADD_VETH(p1, at_ns1, br0, "10.1.1.2/24") + +ADD_SVLAN(p0, at_ns0, 4094, "10.255.2.1/24") +ADD_SVLAN(p1, at_ns1, 4094, "10.255.2.2/24") + +ADD_CVLAN(p0.4094, at_ns0, 100, "10.2.2.1/24") +ADD_CVLAN(p1.4094, at_ns1, 100, "10.2.2.2/24") + +AT_DATA([flows.txt], [dnl +priority=1 action=normal +priority=200 dl_type=0x8100 action=drop +]) + +AT_CHECK([ovs-ofctl --bundle add-flows br0 flows.txt]) + +OVS_WAIT_UNTIL([ip netns exec at_ns0 ping -c 1 10.255.2.2]) + +dnl CVLAN traffic should match the flow and drop +NS_CHECK_EXEC([at_ns0], [ping -q -c 1 -w 3 10.2.2.2], [1], [ignore]) + +OVS_TRAFFIC_VSWITCHD_STOP +AT_CLEANUP -- 2.5.5 ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] [PATCH v3 3/7] system-traffic: 802.1ad: Add datapath ping tests for CVLANs.
Signed-off-by: Eric Garver--- tests/system-traffic.at | 62 + 1 file changed, 62 insertions(+) diff --git a/tests/system-traffic.at b/tests/system-traffic.at index 4dabd90356a1..83c7b8a2f4e5 100644 --- a/tests/system-traffic.at +++ b/tests/system-traffic.at @@ -69,6 +69,37 @@ NS_CHECK_EXEC([at_ns0], [ping -s 3200 -q -c 3 -i 0.3 -w 2 10.2.2.2 | FORMAT_PING OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP +AT_SETUP([datapath - ping between two ports on cvlan]) +OVS_TRAFFIC_VSWITCHD_START() + +AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"]) + +ADD_NAMESPACES(at_ns0, at_ns1) + +ADD_VETH(p0, at_ns0, br0, "10.1.1.1/24") +ADD_VETH(p1, at_ns1, br0, "10.1.1.2/24") + +ADD_SVLAN(p0, at_ns0, 4094, "10.255.2.1/24") +ADD_SVLAN(p1, at_ns1, 4094, "10.255.2.2/24") + +ADD_CVLAN(p0.4094, at_ns0, 100, "10.2.2.1/24") +ADD_CVLAN(p1.4094, at_ns1, 100, "10.2.2.2/24") + +OVS_WAIT_UNTIL([ip netns exec at_ns0 ping -c 1 10.2.2.2]) + +NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 10.2.2.2 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) +NS_CHECK_EXEC([at_ns0], [ping -s 1600 -q -c 3 -i 0.3 -w 2 10.2.2.2 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) +NS_CHECK_EXEC([at_ns0], [ping -s 3200 -q -c 3 -i 0.3 -w 2 10.2.2.2 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +OVS_TRAFFIC_VSWITCHD_STOP +AT_CLEANUP + AT_SETUP([datapath - ping6 between two ports]) OVS_TRAFFIC_VSWITCHD_START() @@ -128,6 +159,37 @@ NS_CHECK_EXEC([at_ns0], [ping6 -s 3200 -q -c 3 -i 0.3 -w 2 fc00:1::2 | FORMAT_PI OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP +AT_SETUP([datapath - ping6 between two ports on cvlan]) +OVS_TRAFFIC_VSWITCHD_START() + +AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"]) + +ADD_NAMESPACES(at_ns0, at_ns1) + +ADD_VETH(p0, at_ns0, br0, "fc00::1/96") +ADD_VETH(p1, at_ns1, br0, "fc00::2/96") + +ADD_SVLAN(p0, at_ns0, 4094, "fc00:::1/96") +ADD_SVLAN(p1, at_ns1, 4094, "fc00:::2/96") + +ADD_CVLAN(p0.4094, at_ns0, 100, "fc00:1::1/96") +ADD_CVLAN(p1.4094, at_ns1, 100, "fc00:1::2/96") + +OVS_WAIT_UNTIL([ip netns exec at_ns0 ping6 -c 1 fc00:1::2]) + +NS_CHECK_EXEC([at_ns0], [ping6 -q -c 3 -i 0.3 -w 2 fc00:1::2 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) +NS_CHECK_EXEC([at_ns0], [ping6 -s 1600 -q -c 3 -i 0.3 -w 2 fc00:1::2 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) +NS_CHECK_EXEC([at_ns0], [ping6 -s 3200 -q -c 3 -i 0.3 -w 2 fc00:1::2 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +OVS_TRAFFIC_VSWITCHD_STOP +AT_CLEANUP + AT_SETUP([datapath - ping over bond]) OVS_TRAFFIC_VSWITCHD_START() -- 2.5.5 ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] [PATCH v3 1/7] system-userspace-macros: allow passing sed args to OVS_TRAFFIC_VSWITCHD_STOP()
Passing sed arguments to OVS_TRAFFIC_VSWITCHD_STOP() was being ignored for check-system-userspace. This is useful to selective ignore log messages. Signed-off-by: Eric Garver--- tests/system-userspace-macros.at | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/system-userspace-macros.at b/tests/system-userspace-macros.at index 7e10b6c21f31..631f71a9aa10 100644 --- a/tests/system-userspace-macros.at +++ b/tests/system-userspace-macros.at @@ -35,7 +35,7 @@ m4_define([OVS_TRAFFIC_VSWITCHD_START], # removal. m4_define([OVS_TRAFFIC_VSWITCHD_STOP], [OVS_VSWITCHD_STOP([dnl -"/netdev_linux.*obtaining netdev stats via vport failed/d +$1";/netdev_linux.*obtaining netdev stats via vport failed/d /dpif_netlink.*Generic Netlink family 'ovs_datapath' does not exist. The Open vSwitch kernel module is probably not loaded./d"]) AT_CHECK([:; $2]) ]) -- 2.5.5 ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] [PATCH v3 2/7] system-common-macros: Add macros to check for and test 802.1ad.
Add macros OVS_CHECK_8021AD(), ADD_SVLAN() and ADD_CVLAN(). Signed-off-by: Eric Garver--- tests/system-common-macros.at | 32 +++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/tests/system-common-macros.at b/tests/system-common-macros.at index 1dfdcf9ea789..bf7682ef31c2 100644 --- a/tests/system-common-macros.at +++ b/tests/system-common-macros.at @@ -130,12 +130,35 @@ m4_define([ADD_VETH_BOND], # Add a VLAN device named 'port' within 'namespace'. It will be configured # with the ID 'vlan-id' and the address 'ip-addr'. m4_define([ADD_VLAN], -[ NS_CHECK_EXEC([$2], [ip link add link $1 name $1.$3 type vlan id $3]) +[ NS_CHECK_EXEC([$2], [ip link add link $1 name $1.$3 type vlan proto 802.1q id $3]) NS_CHECK_EXEC([$2], [ip link set dev $1.$3 up]) NS_CHECK_EXEC([$2], [ip addr add dev $1.$3 $4]) ] ) +# ADD_SVLAN([port], [namespace], [vlan-id], [ip-addr]) +# +# Add a SVLAN device named 'port' within 'namespace'. It will be configured +# with the ID 'vlan-id' and the address 'ip-addr'. +m4_define([ADD_SVLAN], +[ NS_CHECK_EXEC([$2], [ip link add link $1 name $1.$3 type vlan proto 802.1ad id $3]) + NS_CHECK_EXEC([$2], [ip link set dev $1.$3 up]) + NS_CHECK_EXEC([$2], [ip addr add dev $1.$3 $4]) + NS_CHECK_EXEC([$2], [ip link set $1.$3 mtu 1496]) +] +) + +# ADD_CVLAN([port], [namespace], [vlan-id], [ip-addr]) +# +# Similar to ADD_VLAN(), but sets MTU. Lower MTU here instead of increase MTU +# on bridge/SVLAN because older kernels didn't work. +# +m4_define([ADD_CVLAN], +[ ADD_VLAN([$1], [$2], [$3], [$4]) + NS_CHECK_EXEC([$2], [ip link set $1.$3 mtu 1492]) +] +) + # ADD_OVS_TUNNEL([type], [bridge], [port], [remote-addr], [overlay-addr]) # # Add an ovs-based tunnel device in the root namespace, with name 'port' and @@ -213,3 +236,10 @@ m4_define([OVS_CHECK_GRE], # OVS_CHECK_GENEVE() m4_define([OVS_CHECK_GENEVE], [AT_SKIP_IF([! ip link add foo type geneve help 2>&1 | grep geneve >/dev/null])]) + +# OVS_CHECK_8021AD() +m4_define([OVS_CHECK_8021AD], +[AT_SKIP_IF([! grep "VLAN label stack" ovs-vswitchd.log]) + AT_SKIP_IF([test `sed -n 's/.*VLAN label stack length probed as \(\d*\)/\1/p' ovs-vswitchd.log` -lt 2]) + AT_CHECK([ovs-vsctl set Open_vSwitch . other_config:vlan-limit=0]) +]) -- 2.5.5 ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] [PATCH v3 0/7] system-traffic: add 802.1ad test cases
This series adds 802.1ad test cases for the check-* make targets. It is meant as a counterpart to the 802.1ad work currently going on and being discussed on the dev list. User space support for 802.1ad is being worked on by Xiao Liang (based on Thomas F Herbert's work). Kernel support is already present in upstream net-next tree. Tested with v5 of Xiao's 802.1ad patch series. Tested with; recent (4.8.0-rc4+) net-next kernel, upstream 4.7.3, and upstream 3.19.8. v3: - Add test case for vlan_limit. This is to verify backwards compatibility of dl_type. - Add double 0x8100 tag test. - Specify cvlans for dot1q-tunnel test and verify other VLANs filtered - Drop CVLAN MTU to 1492, SVLAN to 1496 - Fix passing sed filters for userspace datapath tests. v2: - Properly skip tests on older versions of OVS and kernel - Set CVLAN mtu to 1496 to allow tests to pass on older kernels Eric Garver (7): system-userspace-macros: allow passing sed args to OVS_TRAFFIC_VSWITCHD_STOP() system-common-macros: Add macros to check for and test 802.1ad. system-traffic: 802.1ad: Add datapath ping tests for CVLANs. system-traffic: 802.1ad: Add conntrack ping tests for CVLANs. system-traffic: 802.1ad: Add vlan_limit test case. system-traffic: 802.1ad: Add push/pop test cases. system-traffic: 802.1ad: Add dot1q-tunnel test case. tests/system-common-macros.at| 32 +++- tests/system-traffic.at | 379 +++ tests/system-userspace-macros.at | 2 +- 3 files changed, 411 insertions(+), 2 deletions(-) -- 2.5.5 ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH] ovn: make ipam tests more reliable
> From: "Ben Pfaff"> To: "Lance Richardson" > Cc: dev@openvswitch.org > Sent: Wednesday, September 14, 2016 8:03:16 PM > Subject: Re: [ovs-dev] [PATCH] ovn: make ipam tests more reliable > > On Wed, Sep 14, 2016 at 07:30:50PM -0400, Lance Richardson wrote: > > After adding log messages to better understand IPAM-related code > > in ovn northd, the IPAM tests began to fail occasionally. Adding > > --wait=sb to commands triggering address allocation eliminated > > these failures (there were no failures with 100 executions when > > testing with this change). > > > > Signed-off-by: Lance Richardson > > I think that this adds more "--wait"s than strictly necessary (it's only > really useful on the last ovn-nbctl call in a series of them) but that's > not really harmful (except to performance), so I applied it to master > and branch-2.6. > I did wonder whether it might be worthwhile to avoid the --wait in each iteration of the loop and just have one --wait after the loop, but I wasn't sure about the best way to go about doing that. This was the first time I had tried using the --wait option, it's a nice addition and much better than trying to band-aid with sleeps. Thanks, Lance > Thank you! > ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] Documents Requested
Dear dev, Please find attached documents as requested. Best Regards, Dillon ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH] ovn: make ipam tests more reliable
On Wed, Sep 14, 2016 at 07:30:50PM -0400, Lance Richardson wrote: > After adding log messages to better understand IPAM-related code > in ovn northd, the IPAM tests began to fail occasionally. Adding > --wait=sb to commands triggering address allocation eliminated > these failures (there were no failures with 100 executions when > testing with this change). > > Signed-off-by: Lance RichardsonI think that this adds more "--wait"s than strictly necessary (it's only really useful on the last ovn-nbctl call in a series of them) but that's not really harmful (except to performance), so I applied it to master and branch-2.6. Thank you! ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] Documents Requested
Dear dev, Please find attached documents as requested. Best Regards, Rhonda ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH v3 13/13] ofproto: Support packet_outs in bundles.
Series now pushed to master, Jarno > On Sep 14, 2016, at 2:57 PM, Jarno Rajahalmewrote: > >> >> On Sep 13, 2016, at 5:09 PM, Ben Pfaff > >> wrote: >> >> On Mon, Sep 12, 2016 at 01:52:43PM -0700, Jarno Rajahalme wrote: >>> Add support for OFPT_PACKET_OUT messages in bundles. >>> >>> While ovs-ofctl already has a packet-out command, we did not have a >>> string parser for it, as the parsing was done directly from command >>> line arguments. >>> >>> This patch adds the string parser for packet-out messages, and adds a >>> new ofctl/packet-out ovs-appctl command that can be used when >>> ovs-ofctl is used as a flow monitor. >>> >>> The new packet-out parser is further supported with the ovs-ofctl >>> bundle command, which allows bundles to mix flow mods, group mods and >>> packet-out messages. Also the packet-outs in bundles are only >>> executed if the whole bundle is successful. A failing packet-out >>> translation may also make the whole bundle to fail. >>> >>> Signed-off-by: Jarno Rajahalme > >> >> Should the existing packet-out command in ovs-ofctl also support this >> new syntax? It could distinguish it from the legacy syntax by checking >> the number of arguments (1 versus 4+). If so, perhaps we should >> deprecate the legacy syntax. > > OK. > >> I think that parse_ofp_packet_out_str__() has some memory leaks inside >> the while loop: if it detects than one error, then the earlier one is >> leaked. > > Fixed by adding “goto out;” after each time error is set to a non-NULL value, > rather than checking after multiple possible errors. > >> >> It's a little unusual that ofputil_encode_bundle_msgs() frees the >> bundled messages and that there's no separate way to do that without >> encoding. > > Added a separate ofputil_free_bundle_msgs(), and removed the freeing from the > ofputil_encode_bundle_msgs(). > >> >> I'm surprised that do_bundle_commit() potentially increases >> ofproto->tables_version more than once (in the loop labeled >> "4. Finish."). I would have guessed that it would do that once, to make >> visible everything in the bundle. >> > > We have no versioning for port_mods, which OpenFlow spec says need to be > supported in bundles. If the bundle does not include port mods, everything is > published as one new version, but if there are port mods, then the other > (flow, group, packet out) mods before and after each port mod are made > visible as one new version. I presume that if the caller is not specifying > the ‘ordered’ flag, we could first issue all the port mods and then commit > everything else as one version, but I have not wanted to deal with the > complications of ‘out-of-order’ handling of messages, as we would need to > detect potential conflicts among the messages. E.g., if one flow mod deletes > all the flows and another adds one, out-of-order execution could be > considered ‘conflicting’. Now we always execute everything in order, so the > semantics is clear. However, I’m not sure if we should still detect such > conflicts if the client does not specify the ‘ordered’ flag. > > Thanks a lot for the reviews, I’ll push the patches 6-13 in a moment (I > pushed patches 1-5 already yesterday). > > Jarno > >> Acked-by: Ben Pfaff > ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH] ovn-trace: Temporary fix for segment fault
On Fri, Sep 09, 2016 at 02:05:14PM -0700, Han Zhou wrote: > ovn-trace crashes when there are dhcp flows, which makes the tool > unusable. This patch is to fix the crash with a dummy dhcp_opts, > until dhcp_opts is completely supported by ovn-trace. > > Signed-off-by: Han ZhouIt doesn't fix the similar problem for DHCPv6 options. How about this instead? I have not tested it. --8<--cut here-->8-- From: Ben Pfaff Date: Wed, 14 Sep 2016 16:58:44 -0700 Subject: [PATCH] ovn-trace: Avoid segfault for DHCP options flows. It would be better if ovn-trace fully supported DHCP options, but this at least should avoid the segmentation fault. Reported-by: Han Zhou Signed-off-by: Ben Pfaff --- ovn/lib/actions.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ovn/lib/actions.c b/ovn/lib/actions.c index 03dba8f..59131dd 100644 --- a/ovn/lib/actions.c +++ b/ovn/lib/actions.c @@ -1321,7 +1321,7 @@ parse_dhcp_opt(struct action_context *ctx, struct ovnact_dhcp_option *o, const char *name = v6 ? "DHCPv6" : "DHCPv4"; const struct hmap *map = v6 ? ctx->pp->dhcpv6_opts : ctx->pp->dhcp_opts; -o->option = dhcp_opts_find(map, ctx->lexer->token.s); +o->option = map ? dhcp_opts_find(map, ctx->lexer->token.s) : NULL; if (!o->option) { lexer_syntax_error(ctx->lexer, "expecting %s option name", name); return; -- 2.1.3 ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] Documents Requested
Dear dev, Please find attached documents as requested. Best Regards, Emile ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH RFC v3] ovn-northd: add default_dhcpvx_options for Logical_Switch
On Thu, Sep 01, 2016 at 09:56:30AM +, Zongkai LI wrote: > This patch adds default_dhcpv4_options and default_dhcpv6_options columns for > Logical_Switch, which should help CMS not to calculate and set dhcpv4_options > and dhcpv6_options columns for lswitch ports on lswitchs one by one, when > most of lswitch ports on the same lswitch are using the DHCPv4_Options and > DHCPv6_Options. Default DHCP(v4 and v6) Options should benefit in case > scalling up and DB synchronization between CMS and OVN NB. > > v1 -> v2 > add ACL lflows support for lswitch ports using default_dhcpvx_options from > lswitch. > > v2 -> v3 > update ovn dhcpv4 and dhcpv6 tests for lswitch ports using specific dhcp > options than defualt ones in lswitch. The CMS can point the multiple dhcpvx_options column in as many rows as it likes to the same row in the DHCP_Options table, so I don't know why this offers an advantage. ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH v1 1/1] ovn-northd: add dhcpv6 stateless option support
On Fri, Sep 09, 2016 at 06:39:17AM +, Zongkai LI wrote: > This patch adds DHCPv6 stateless option support, to allow ovn native dhcpv6 > work in stateless mode. > > User can add new option dhcpv6_stateless with string value true in > DHCP_Options.options column, to let ovn dhcpv6 only reply other configurations > for DHCPv6 request messages come from VM/VIF ports, and let VM/VIF ports get > their IPv6 addresses configured via stateless way. > > Signed-off-by: Zongkai LISeems reasonable enough. It seems like a bit much to clone the whole options structure to possibly delete one element, so I changed the code as below, and then applied this to master. --8<--cut here-->8-- diff --git a/ovn/northd/ovn-northd.c b/ovn/northd/ovn-northd.c index fbcc719..62af64b 100644 --- a/ovn/northd/ovn-northd.c +++ b/ovn/northd/ovn-northd.c @@ -2009,25 +2009,21 @@ build_dhcpv6_action(struct ovn_port *op, struct in6_addr *offer_ip, ds_put_format(options_action, REGBIT_DHCP_OPTS_RESULT" = put_dhcpv6_opts("); -struct smap dhcpv6_options = SMAP_INITIALIZER(_options); -smap_clone(_options, >nbsp->dhcpv6_options->options); - /* Check whether the dhcpv6 options should be configured as stateful. * Only reply with ia_addr option for dhcpv6 stateful address mode. */ -const char *dhcpv6_stateless = smap_get( -_options, "dhcpv6_stateless"); -if (!dhcpv6_stateless || strcmp(dhcpv6_stateless, "true")) { +if (!smap_get_bool(>nbsp->dhcpv6_options->options, + "dhcpv6_stateless", false)) { char ia_addr[INET6_ADDRSTRLEN + 1]; ipv6_string_mapped(ia_addr, offer_ip); ds_put_format(options_action, "ia_addr = %s, ", ia_addr); } -/* dhcpv6_stateless is not DHCPv6 option, delete it from the smap. */ -smap_remove(_options, "dhcpv6_stateless"); struct smap_node *node; -SMAP_FOR_EACH (node, _options) { -ds_put_format(options_action, "%s = %s, ", node->key, node->value); +SMAP_FOR_EACH (node, >nbsp->dhcpv6_options->options) { +if (strcmp(node->key, "dhcpv6_stateless")) { +ds_put_format(options_action, "%s = %s, ", node->key, node->value); +} } ds_chomp(options_action, ' '); ds_chomp(options_action, ','); @@ -2039,7 +2035,6 @@ build_dhcpv6_action(struct ovn_port *op, struct in6_addr *offer_ip, "output;", server_mac, server_ip); -smap_destroy(_options); return true; } ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] [PATCH] ovn: make ipam tests more reliable
After adding log messages to better understand IPAM-related code in ovn northd, the IPAM tests began to fail occasionally. Adding --wait=sb to commands triggering address allocation eliminated these failures (there were no failures with 100 executions when testing with this change). Signed-off-by: Lance Richardson--- tests/ovn.at | 20 ++-- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/ovn.at b/tests/ovn.at index 5707f47..1fcd666 100644 --- a/tests/ovn.at +++ b/tests/ovn.at @@ -4436,7 +4436,7 @@ AT_CHECK([ovn-nbctl get Logical-Switch-Port p0 dynamic_addresses], [0], # Add 9 more ports to sw0, addresses should all be unique. for n in `seq 1 9`; do -ovn-nbctl lsp-add sw0 "p$n" -- lsp-set-addresses "p$n" dynamic +ovn-nbctl --wait=sb lsp-add sw0 "p$n" -- lsp-set-addresses "p$n" dynamic done AT_CHECK([ovn-nbctl get Logical-Switch-Port p1 dynamic_addresses], [0], ["0a:00:00:00:00:02 192.168.1.3" @@ -4470,13 +4470,13 @@ AT_CHECK([ovn-nbctl get Logical-Switch-Port p9 dynamic_addresses], [0], # across both switches but IP's only need to be unique within the same switch. ovn-nbctl ls-add sw1 ovn-nbctl lsp-add sw1 p10 -- lsp-set-addresses p10 dynamic -ovn-nbctl add Logical-Switch sw1 other_config subnet=192.168.1.0/24 +ovn-nbctl --wait=sb add Logical-Switch sw1 other_config subnet=192.168.1.0/24 AT_CHECK([ovn-nbctl get Logical-Switch-Port p10 dynamic_addresses], [0], ["0a:00:00:00:00:0b 192.168.1.2" ]) for n in `seq 11 19`; do -ovn-nbctl lsp-add sw1 "p$n" -- lsp-set-addresses "p$n" dynamic +ovn-nbctl --wait=sb lsp-add sw1 "p$n" -- lsp-set-addresses "p$n" dynamic done AT_CHECK([ovn-nbctl get Logical-Switch-Port p11 dynamic_addresses], [0], ["0a:00:00:00:00:0c 192.168.1.3" @@ -4509,7 +4509,7 @@ AT_CHECK([ovn-nbctl get Logical-Switch-Port p19 dynamic_addresses], [0], # Change a port's address to test for multiple ip's for a single address entry # and addresses set by the user. ovn-nbctl lsp-set-addresses p0 "0a:00:00:00:00:15 192.168.1.12 192.168.1.14" -ovn-nbctl lsp-add sw0 p20 -- lsp-set-addresses p20 dynamic +ovn-nbctl --wait=sb lsp-add sw0 p20 -- lsp-set-addresses p20 dynamic AT_CHECK([ovn-nbctl get Logical-Switch-Port p20 dynamic_addresses], [0], ["0a:00:00:00:00:16 192.168.1.13" ]) @@ -4520,14 +4520,14 @@ ovn-nbctl -- --id=@lrp create Logical_Router_port name=sw0 \ network="192.168.1.1/24" mac=\"0a:00:00:00:00:17\" \ -- add Logical_Router R1 ports @lrp -- lsp-add sw0 rp-sw0 \ -- set Logical_Switch_Port rp-sw0 type=router options:router-port=sw0 -ovn-nbctl lsp-add sw0 p21 -- lsp-set-addresses p21 dynamic +ovn-nbctl --wait=sb lsp-add sw0 p21 -- lsp-set-addresses p21 dynamic AT_CHECK([ovn-nbctl get Logical-Switch-Port p21 dynamic_addresses], [0], ["0a:00:00:00:00:18 192.168.1.15" ]) # Test for address reuse after logical port is deleted. ovn-nbctl lsp-del p0 -ovn-nbctl lsp-add sw0 p23 -- lsp-set-addresses p23 dynamic +ovn-nbctl --wait=sb lsp-add sw0 p23 -- lsp-set-addresses p23 dynamic AT_CHECK([ovn-nbctl get Logical-Switch-Port p23 dynamic_addresses], [0], ["0a:00:00:00:00:19 192.168.1.2" ]) @@ -4535,19 +4535,19 @@ AT_CHECK([ovn-nbctl get Logical-Switch-Port p23 dynamic_addresses], [0], # Test for multiple addresses to one logical port. ovn-nbctl lsp-add sw0 p25 -- lsp-set-addresses p25 \ "0a:00:00:00:00:1a 192.168.1.12" "0a:00:00:00:00:1b 192.168.1.14" -ovn-nbctl lsp-add sw0 p26 -- lsp-set-addresses p26 dynamic +ovn-nbctl --wait=sb lsp-add sw0 p26 -- lsp-set-addresses p26 dynamic AT_CHECK([ovn-nbctl get Logical-Switch-Port p26 dynamic_addresses], [0], ["0a:00:00:00:00:1c 192.168.1.16" ]) # Test for exhausting subnet address space. ovn-nbctl ls-add sw2 -- add Logical-Switch sw2 other_config subnet=172.16.1.0/30 -ovn-nbctl lsp-add sw2 p27 -- lsp-set-addresses p27 dynamic +ovn-nbctl --wait=sb lsp-add sw2 p27 -- lsp-set-addresses p27 dynamic AT_CHECK([ovn-nbctl get Logical-Switch-Port p27 dynamic_addresses], [0], ["0a:00:00:00:00:1d 172.16.1.2" ]) -ovn-nbctl lsp-add sw2 p28 -- lsp-set-addresses p28 dynamic +ovn-nbctl --wait=sb lsp-add sw2 p28 -- lsp-set-addresses p28 dynamic AT_CHECK([ovn-nbctl get Logical-Switch-Port p28 dynamic_addresses], [0], [[[]] ]) @@ -4561,7 +4561,7 @@ ovn-nbctl -- --id=@lrp create Logical_Router_port name=sw3 \ network="192.168.2.1/24" mac=\"0a:00:00:00:00:1f\" \ -- add Logical_Router R2 ports @lrp -- lsp-add sw3 rp-sw3 \ -- set Logical_Switch_Port rp-sw3 type=router options:router-port=sw3 -ovn-nbctl lsp-add sw0 p30 -- lsp-set-addresses p30 dynamic +ovn-nbctl --wait=sb lsp-add sw0 p30 -- lsp-set-addresses p30 dynamic AT_CHECK([ovn-nbctl get Logical-Switch-Port p30 dynamic_addresses], [0], ["0a:00:00:00:00:20 192.168.1.17" ]) -- 2.5.5 ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] backport request for 2.6: enable kernel datapath check in rpms
> From: "Ben Pfaff"> To: "Russell Bryant" > Cc: "ovs dev" , "Flavio Leitner" , > "Lance Richardson" > Sent: Wednesday, September 14, 2016 1:50:33 PM > Subject: Re: [ovs-dev] backport request for 2.6: enable kernel datapath check > in rpms > > On Tue, Sep 13, 2016 at 12:07:25PM -0400, Lance Richardson wrote: > > Requesting backports of these commits to the 2.6 branch: > > > > commit 8ef22bb1ceb7b2841d2e29eb283387f0a3a67ff9 > > rhel: add option to run kernel datapath test when building rpms > > Russell, will you please consider this? > > > commit ed71ac3e23e472378b1d292fcd8d3c43e46fe153 > > check-kernel: add recheck support > > This one appears to already be on branch-2.6, please let me know if I'm > wrong. You are correct, I should have double-checked. > > > These appear safe, and would save having to maintain out-of-tree > > versions of these commits. > ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH v1] ovn-northd: allow DHCPv6 respond multiple IA Address Options
On Mon, Aug 29, 2016 at 02:15:52PM +0800, Zong Kai LI wrote: > From: Zongkai LI> > This patch tries to allow OVN native DHCPv6 responder to respond multiple > IA Address Options in a DHCPv6 reply message, this will help a lswitch port > to configure all IPv6 addresses belongs to it in DHCPv6 processing. > > This fixes issue lswitch port can only get one IPv6 address, when it has > addresses looks like: > addresses : ["fa:16:3e:66:31:ac 10.0.0.6 fd55:cb39:f835:0:f816:3eff:fe66:31ac > fdad:1234:5678:0:f816:3eff:fe66:31ac"] > and dhcpv6_options it refers has cidr "fd55:cb39:f835::/64". The lswitch port > will get only IPv6 address "fd55:cb39:f835:0:f816:3eff:fe66:31ac" in DHCPv6 > processing routine. > > Signed-off-by: Zongkai LI Hi, thanks for working on this. Can you add a test (or adjust an existing test) to verify that multiple IPv6 addresses work properly? Thanks, Ben. ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH v2] ovn: log dhcp responses for debugging
On Thu, Sep 01, 2016 at 06:38:58PM +, Ramu Ramamurthy wrote: > Add a few messages at INFO to help debug the vif lifecycle. > A logsearch on mac or ip helps debug what happened to the > vif and when. This helps easily correlate logs across CMS and ovn. > > Logs appear like this: > > 2016-09-01T18:15:48Z|00014|binding|INFO|Claiming lport > eee1a9af-7513-4540-9385-9e3972bfca05 for this chassis. > 2016-09-01T18:15:48Z|00015|binding|INFO|Claiming fa:16:3e:01:c3:4a 10.0.0.7 > fd93:b509:aa46:0:f816:3eff:fe01:c34a > 2016-09-01T18:15:59Z|00016|pinctrl|INFO|DHCPOFFER fa:16:3e:01:c3:4a 10.0.0.7 > 2016-09-01T18:15:59Z|00017|pinctrl|INFO|DHCPACK fa:16:3e:01:c3:4a 10.0.0.7 > 2016-09-01T18:16:22Z|00018|binding|INFO|Releasing lport > eee1a9af-7513-4540-9385-9e3972bfca05 from this chassis. > 2016-09-01T18:16:22Z|00019|binding|INFO|Releasing fa:16:3e:01:c3:4a 10.0.0.7 > fd93:b509:aa46:0:f816:3eff:fe01:c34a > > Signed-off-by: Ramu Ramamurthy> --- > v1->v2: add rate limit I have some misgivings about this, but it can't really hurt anything so I applied it to master and branch-2.6. ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH] ovn: add lsp-deletion and bcast-flow removal tests for localnet
On Tue, Aug 30, 2016 at 11:58:34PM +, Ramu Ramamurthy wrote: > From: Ramu Ramamurthy> > Add 2 tests for scenarios around lsp-deletion and flow removal > which have escaped current unit tests. > > This test depends on the following patch: > "ovn-controller: Back out incremental processing" and passes > after applying it, but fails currently on master. > > 1) In the following sequence of events, > createi vif1, create vif2, delete vif1 > we find that the localnet patch port > got deleted, whereas it should exist because there is a > bound vif2. > > 2) The flow broadcasting to tunnels in table=32 must be deleted > when a localnet port gets bound, but we find that the flow remains > in table 32 causing broadcasts to both tunnels and localnet patch. > > Signed-off-by: Ramu Ramamurthy Thanks. I applied this to master and branch-2.6. ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH v3 13/13] ofproto: Support packet_outs in bundles.
> On Sep 13, 2016, at 5:09 PM, Ben Pfaffwrote: > > On Mon, Sep 12, 2016 at 01:52:43PM -0700, Jarno Rajahalme wrote: >> Add support for OFPT_PACKET_OUT messages in bundles. >> >> While ovs-ofctl already has a packet-out command, we did not have a >> string parser for it, as the parsing was done directly from command >> line arguments. >> >> This patch adds the string parser for packet-out messages, and adds a >> new ofctl/packet-out ovs-appctl command that can be used when >> ovs-ofctl is used as a flow monitor. >> >> The new packet-out parser is further supported with the ovs-ofctl >> bundle command, which allows bundles to mix flow mods, group mods and >> packet-out messages. Also the packet-outs in bundles are only >> executed if the whole bundle is successful. A failing packet-out >> translation may also make the whole bundle to fail. >> >> Signed-off-by: Jarno Rajahalme > > Should the existing packet-out command in ovs-ofctl also support this > new syntax? It could distinguish it from the legacy syntax by checking > the number of arguments (1 versus 4+). If so, perhaps we should > deprecate the legacy syntax. OK. > I think that parse_ofp_packet_out_str__() has some memory leaks inside > the while loop: if it detects than one error, then the earlier one is > leaked. Fixed by adding “goto out;” after each time error is set to a non-NULL value, rather than checking after multiple possible errors. > > It's a little unusual that ofputil_encode_bundle_msgs() frees the > bundled messages and that there's no separate way to do that without > encoding. Added a separate ofputil_free_bundle_msgs(), and removed the freeing from the ofputil_encode_bundle_msgs(). > > I'm surprised that do_bundle_commit() potentially increases > ofproto->tables_version more than once (in the loop labeled > "4. Finish."). I would have guessed that it would do that once, to make > visible everything in the bundle. > We have no versioning for port_mods, which OpenFlow spec says need to be supported in bundles. If the bundle does not include port mods, everything is published as one new version, but if there are port mods, then the other (flow, group, packet out) mods before and after each port mod are made visible as one new version. I presume that if the caller is not specifying the ‘ordered’ flag, we could first issue all the port mods and then commit everything else as one version, but I have not wanted to deal with the complications of ‘out-of-order’ handling of messages, as we would need to detect potential conflicts among the messages. E.g., if one flow mod deletes all the flows and another adds one, out-of-order execution could be considered ‘conflicting’. Now we always execute everything in order, so the semantics is clear. However, I’m not sure if we should still detect such conflicts if the client does not specify the ‘ordered’ flag. Thanks a lot for the reviews, I’ll push the patches 6-13 in a moment (I pushed patches 1-5 already yesterday). Jarno > Acked-by: Ben Pfaff > ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH] Tests: update monitor-cond tests on Windows
On 14 September 2016 at 09:00, Alin Serdeanwrote: > Windows allows '--detach' argument to be used. > This patch updates the ovsdb monitor tests to use it. > > Fixes hanging test: > 1889: monitor-cond-change > > Signed-off-by: Alin Gabriel Serdean > Can you have a look at the commit message of 90fd962877de which introduced the if else condition? Can you run the unit tests of the ovsdb-monitor a few times to make sure that there is no test failures because of the mentioned issue. > --- > tests/ovsdb-monitor.at | 28 +++- > 1 file changed, 11 insertions(+), 17 deletions(-) > > diff --git a/tests/ovsdb-monitor.at b/tests/ovsdb-monitor.at > index 6d51a1a..f809a2b 100644 > --- a/tests/ovsdb-monitor.at > +++ b/tests/ovsdb-monitor.at > @@ -27,14 +27,8 @@ m4_define([OVSDB_CHECK_MONITOR], > AT_CHECK([ovsdb-server --detach --no-chdir > --pidfile="`pwd`"/server-pid --remote=punix:socket > --unixctl="`pwd`"/unixctl --log-file="`pwd`"/ovsdb-server-log db > >/dev/null 2>&1], > [0], [], []) > AT_CAPTURE_FILE([ovsdb-client-log]) > - if test "$IS_WIN32" = "yes"; then > - AT_CHECK([ovsdb-client -vjsonrpc --pidfile="`pwd`"/client-pid > --log-file="`pwd`"/ovsdb-client-log -d json monitor --format=csv > unix:socket $4 $5 $8 > output 2>/dev/null &], > - [0], [ignore], [ignore], [kill `cat server-pid`]) > - sleep 1 > - else > - AT_CHECK([ovsdb-client -vjsonrpc --detach --no-chdir > --pidfile="`pwd`"/client-pid --log-file="`pwd`"/ovsdb-client-log -d json > monitor --format=csv unix:socket $4 $5 $8 > output], > + AT_CHECK([ovsdb-client -vjsonrpc --detach --no-chdir > --pidfile="`pwd`"/client-pid --log-file="`pwd`"/ovsdb-client-log -d json > monitor --format=csv unix:socket $4 $5 $8 > output], > [0], [ignore], [ignore], [kill `cat server-pid`]) > - fi > m4_foreach([txn], [$6], > [AT_CHECK([ovsdb-client transact unix:socket 'txn'], [0], > [ignore], [ignore], [kill `cat server-pid > client-pid`])]) > @@ -72,20 +66,20 @@ m4_define([OVSDB_CHECK_MONITOR_COND], > AT_CAPTURE_FILE([ovsdb-server-log]) > AT_CHECK([ovsdb-server --detach --no-chdir > --pidfile="`pwd`"/server-pid --remote=punix:socket > --unixctl="`pwd`"/unixctl --log-file="`pwd`"/ovsdb-server-log db > >/dev/null 2>&1], > [0], [], []) > - if test "$IS_WIN32" = "yes"; then > - AT_CHECK([ovsdb-client -vjsonrpc --pidfile="`pwd`"/client-pid -d > json monitor-cond --format=csv unix:socket $4 '[$8]' $5 $9 > output &], > - [0], [ignore], [ignore], [kill `cat server-pid`]) > - sleep 1 > - else > - AT_CHECK([ ovsdb-client -vjsonrpc --detach --no-chdir > --pidfile="`pwd`"/client-pid -d json monitor-cond --format=csv unix:socket > $4 '[$8]' $5 $9 > output], > + AT_CHECK([ ovsdb-client -vjsonrpc --detach --no-chdir > --pidfile="`pwd`"/client-pid -d json monitor-cond --format=csv unix:socket > $4 '[$8]' $5 $9 > output], > [0], [ignore], [ignore], [kill `cat server-pid`]) > - fi > m4_foreach([txn], [$6], > [AT_CHECK([ovsdb-client transact unix:socket 'txn'], [0], > [ignore], [ignore], [kill `cat server-pid > client-pid`])]) > - CLIENT_PID=`cat "$OVS_RUNDIR"/client-pid 2>/dev/null` > - m4_foreach([cond], [$10], > - [AT_CHECK([ovs-appctl -t "`pwd`"/ovsdb-client.$CLIENT_PID.ctl > ovsdb-client/cond_change $5 'cond'], [0], [ignore], [ignore])]) > + if test "$IS_WIN32" = "yes"; then > + : > + m4_foreach([cond], [$10], > + [AT_CHECK([ovs-appctl -t "`pwd`"/ovsdb-client.ctl > ovsdb-client/cond_change $5 'cond'], [0], [ignore], [ignore])]) > + else > + CLIENT_PID=`cat "$OVS_RUNDIR"/client-pid 2>/dev/null` > + m4_foreach([cond], [$10], > + [AT_CHECK([ovs-appctl -t "`pwd`"/ovsdb-client.$CLIENT_PID.ctl > ovsdb-client/cond_change $5 'cond'], [0], [ignore], [ignore])]) > + fi > AT_CHECK([ovsdb-client transact unix:socket '[["$4"]]'], [0], > [ignore], [ignore], [kill `cat server-pid client-pid`]) > AT_CHECK([ovs-appctl -t "`pwd`"/unixctl -e exit], [0], [ignore], > [ignore]) > -- > 2.9.2.windows.1 > ___ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev > ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH v3 12/13] ofproto: Refactor packet_out handling.
> On Sep 13, 2016, at 4:44 PM, Ben Pfaffwrote: > > On Mon, Sep 12, 2016 at 01:52:42PM -0700, Jarno Rajahalme wrote: >> Refactor handle_packet_out() to prepare for bundle support for packet >> outs in a later patch. >> >> Two new callbacks are introduced in ofproto-provider class: >> ->packet_xlate() and ->packet_execute(). ->packet_xlate() translates >> the packet using the flow and actions provided by the caller, but >> defers all OpenFlow-visible side-effects (stats, learn actions, actual >> packet output, etc.) to be explicitly executed with the >> ->packet_execute() call. >> >> Adds a new ofproto_rule_reduce_timeouts__() that must be called with >> 'ofproto_mutex' held. This is used in the next patch. >> >> Signed-off-by: Jarno Rajahalme >> --- >> v3: Removed layer violations by making ofproto-dpif initialize and >>manage its private 'aux' member in struct ofproto_packet_out. > > It appears that an xlate_cache always allocates at least 512 bytes of > space. (It's not a change but I hadn't noticed before.) Is that right? > It seems like a lot, since I guess that the ordinary occupancy is much > smaller than that. > It’s an union, and the size is 40 bytes per entry. Given that each match/miss gets a table entry, each matched rule gets a rule entry, and then the occasional normal, learn, etc., the total size in a complex pipeline could easily be the 512 or more. E.g., pipeline of 15 tables would generate about 30 entries, with total size of 1200 bytes in the ofpbuf. However, since some pipelines are simple, I reduced the initial size to 120 bytes. We can revisit this when the optimizations described below are done. I have though of optimizing this further by making the entires variable sized, much like the ofpacts. We could also add a table number to the XC_RULE entry, and then modify the XC_TABLE to XC_TABLE_MISS. That would effectively halve the number of entries, and also make the average entry size about 16 bytes. Furthermore, entries now using malloc could use the ofpbuf directly, which could save some alloc/free overhead. Finally, we could give the same treatment that I did for XC_NORMAL to XC_BOND and XC_NETFLOW, replacing the full struct flow with just the fields that are needed. > Acked-by: Ben Pfaff > Thanks for the review! Jarno ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] Delivery.
Kindly Click The Attached ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH] Windows: Allow online compacting
On Tue, Sep 13, 2016 at 06:58:42PM +, Alin Serdean wrote: > > -Original Message- > > From: Ben Pfaff [mailto:b...@ovn.org] > > Sent: Friday, August 26, 2016 6:54 PM > > To: Alin Serdean> > Cc: dev@openvswitch.org > > Subject: Re: [ovs-dev] [PATCH] Windows: Allow online compacting > > > > On Fri, Aug 12, 2016 at 07:39:32AM +, Alin Serdean wrote: > > > This patch allows online compacting to be done under Windows. > > > > > > To achieve the above we need to close all file handles before trying > > > to rename the file, switch from rename to MoveFileEx (because > > > rename/MoveFile fails if the destination exists), reopen the right > > > type of log after the rename. > > > > > > Signed-off-by: Alin Gabriel Serdean > > > > I think that this introduces a new kind of failure. On other OSes, > > ovsdb_file_compact() always leaves 'file' open and usable regardless of > > whether it succeeds or fails. I think that on Windows it can fail and > > close 'file'. > > The callers don't expect that, so there needs to be some way to it to report > > the problem. And then we have to figure out how the database server > > should deal with it if its database got closed and cannot be reopened. > [Alin Serdean] Thanks for the review! You are right Ben, it introduces a new > problem. > I am unware if the requests can be pended until we can reopen the database. > If the requests can be pended we could add a retry counter otherwise > we could log the error and exit out for the time being if something 'happens' > between close and open (since it has a slim chance of producing) and let the > service manager deal with a database service restart. It's a difficult choice. I think that I lean toward making the service fail and exit with an error (VLOG_FATAL, perhaps). Otherwise, we would have to introduce a new mode where ovsdb-server periodically tries to reopen its database and either rejects transaction requests entirely or goes read-only. *Maybe* that is the right approach, but it would require careful testing. ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH v0] lib: Create $(sysconfdir)/openvswitch upon install
On Tue, Sep 13, 2016 at 11:26:15AM -0500, Flavio Fernandes wrote: > In cases where dbdir and etcdir are not the same, there is a need > for creating etcdir (i.e. $(sysconfdir)/openvswitch) explicitly. > > Note that there is no attempt being made here to make the etcdir > configurable as in "--with-dbdir". > > Reported-at: http://openvswitch.org/pipermail/dev/2016-September/TBD.html > Fixes: f973f2af2fd4 ("Make the location of the database separately > configurable.") > Signed-off-by: Flavio FernandesSeems reasonable, thanks. I applied this to master and branch-2.6. ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] backport request for 2.6: enable kernel datapath check in rpms
On Tue, Sep 13, 2016 at 12:07:25PM -0400, Lance Richardson wrote: > Requesting backports of these commits to the 2.6 branch: > > commit 8ef22bb1ceb7b2841d2e29eb283387f0a3a67ff9 > rhel: add option to run kernel datapath test when building rpms Russell, will you please consider this? > commit ed71ac3e23e472378b1d292fcd8d3c43e46fe153 > check-kernel: add recheck support This one appears to already be on branch-2.6, please let me know if I'm wrong. > These appear safe, and would save having to maintain out-of-tree > versions of these commits. ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] [PATCH] Tests: update monitor-cond tests on Windows
Windows allows '--detach' argument to be used. This patch updates the ovsdb monitor tests to use it. Fixes hanging test: 1889: monitor-cond-change Signed-off-by: Alin Gabriel Serdean--- tests/ovsdb-monitor.at | 28 +++- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/tests/ovsdb-monitor.at b/tests/ovsdb-monitor.at index 6d51a1a..f809a2b 100644 --- a/tests/ovsdb-monitor.at +++ b/tests/ovsdb-monitor.at @@ -27,14 +27,8 @@ m4_define([OVSDB_CHECK_MONITOR], AT_CHECK([ovsdb-server --detach --no-chdir --pidfile="`pwd`"/server-pid --remote=punix:socket --unixctl="`pwd`"/unixctl --log-file="`pwd`"/ovsdb-server-log db >/dev/null 2>&1], [0], [], []) AT_CAPTURE_FILE([ovsdb-client-log]) - if test "$IS_WIN32" = "yes"; then - AT_CHECK([ovsdb-client -vjsonrpc --pidfile="`pwd`"/client-pid --log-file="`pwd`"/ovsdb-client-log -d json monitor --format=csv unix:socket $4 $5 $8 > output 2>/dev/null &], - [0], [ignore], [ignore], [kill `cat server-pid`]) - sleep 1 - else - AT_CHECK([ovsdb-client -vjsonrpc --detach --no-chdir --pidfile="`pwd`"/client-pid --log-file="`pwd`"/ovsdb-client-log -d json monitor --format=csv unix:socket $4 $5 $8 > output], + AT_CHECK([ovsdb-client -vjsonrpc --detach --no-chdir --pidfile="`pwd`"/client-pid --log-file="`pwd`"/ovsdb-client-log -d json monitor --format=csv unix:socket $4 $5 $8 > output], [0], [ignore], [ignore], [kill `cat server-pid`]) - fi m4_foreach([txn], [$6], [AT_CHECK([ovsdb-client transact unix:socket 'txn'], [0], [ignore], [ignore], [kill `cat server-pid client-pid`])]) @@ -72,20 +66,20 @@ m4_define([OVSDB_CHECK_MONITOR_COND], AT_CAPTURE_FILE([ovsdb-server-log]) AT_CHECK([ovsdb-server --detach --no-chdir --pidfile="`pwd`"/server-pid --remote=punix:socket --unixctl="`pwd`"/unixctl --log-file="`pwd`"/ovsdb-server-log db >/dev/null 2>&1], [0], [], []) - if test "$IS_WIN32" = "yes"; then - AT_CHECK([ovsdb-client -vjsonrpc --pidfile="`pwd`"/client-pid -d json monitor-cond --format=csv unix:socket $4 '[$8]' $5 $9 > output &], - [0], [ignore], [ignore], [kill `cat server-pid`]) - sleep 1 - else - AT_CHECK([ ovsdb-client -vjsonrpc --detach --no-chdir --pidfile="`pwd`"/client-pid -d json monitor-cond --format=csv unix:socket $4 '[$8]' $5 $9 > output], + AT_CHECK([ ovsdb-client -vjsonrpc --detach --no-chdir --pidfile="`pwd`"/client-pid -d json monitor-cond --format=csv unix:socket $4 '[$8]' $5 $9 > output], [0], [ignore], [ignore], [kill `cat server-pid`]) - fi m4_foreach([txn], [$6], [AT_CHECK([ovsdb-client transact unix:socket 'txn'], [0], [ignore], [ignore], [kill `cat server-pid client-pid`])]) - CLIENT_PID=`cat "$OVS_RUNDIR"/client-pid 2>/dev/null` - m4_foreach([cond], [$10], - [AT_CHECK([ovs-appctl -t "`pwd`"/ovsdb-client.$CLIENT_PID.ctl ovsdb-client/cond_change $5 'cond'], [0], [ignore], [ignore])]) + if test "$IS_WIN32" = "yes"; then + : + m4_foreach([cond], [$10], + [AT_CHECK([ovs-appctl -t "`pwd`"/ovsdb-client.ctl ovsdb-client/cond_change $5 'cond'], [0], [ignore], [ignore])]) + else + CLIENT_PID=`cat "$OVS_RUNDIR"/client-pid 2>/dev/null` + m4_foreach([cond], [$10], + [AT_CHECK([ovs-appctl -t "`pwd`"/ovsdb-client.$CLIENT_PID.ctl ovsdb-client/cond_change $5 'cond'], [0], [ignore], [ignore])]) + fi AT_CHECK([ovsdb-client transact unix:socket '[["$4"]]'], [0], [ignore], [ignore], [kill `cat server-pid client-pid`]) AT_CHECK([ovs-appctl -t "`pwd`"/unixctl -e exit], [0], [ignore], [ignore]) -- 2.9.2.windows.1 ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH] Windows: Extend support for binaries which allow detach
On 14 September 2016 at 08:25, Alin Serdeanwrote: > On Windows we require service_start to be called to parse and setup > requirements for '--detach' argument. > Affected binaries: ovn-trace, ovsdb-client, ovs-testcontroller. > > Subsequent patches will be sent to adapt the tests with the new features. > > Signed-off-by: Alin Gabriel Serdean > Applied to master and 2.6, thanks. > --- > ovn/utilities/ovn-trace.c | 1 + > ovsdb/ovsdb-client.c | 1 + > utilities/ovs-testcontroller.c | 1 + > 3 files changed, 3 insertions(+) > > diff --git a/ovn/utilities/ovn-trace.c b/ovn/utilities/ovn-trace.c > index 487ae52..f5607df 100644 > --- a/ovn/utilities/ovn-trace.c > +++ b/ovn/utilities/ovn-trace.c > @@ -73,6 +73,7 @@ int > main(int argc, char *argv[]) > { > set_program_name(argv[0]); > +service_start(, ); > fatal_ignore_sigpipe(); > vlog_set_levels_from_string_assert("reconnect:warn"); > sbrec_init(); > diff --git a/ovsdb/ovsdb-client.c b/ovsdb/ovsdb-client.c > index 1f83f3b..5f569e8 100644 > --- a/ovsdb/ovsdb-client.c > +++ b/ovsdb/ovsdb-client.c > @@ -90,6 +90,7 @@ main(int argc, char *argv[]) > > ovs_cmdl_proctitle_init(argc, argv); > set_program_name(argv[0]); > +service_start(, ); > parse_options(argc, argv); > fatal_ignore_sigpipe(); > > diff --git a/utilities/ovs-testcontroller.c b/utilities/ovs- > testcontroller.c > index 1db3bbe..2998de2 100644 > --- a/utilities/ovs-testcontroller.c > +++ b/utilities/ovs-testcontroller.c > @@ -105,6 +105,7 @@ main(int argc, char *argv[]) > > ovs_cmdl_proctitle_init(argc, argv); > set_program_name(argv[0]); > +service_start(, ); > parse_options(argc, argv); > fatal_ignore_sigpipe(); > > -- > 2.9.2.windows.1 > ___ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev > ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] [PATCH] Windows: Extend support for binaries which allow detach
On Windows we require service_start to be called to parse and setup requirements for '--detach' argument. Affected binaries: ovn-trace, ovsdb-client, ovs-testcontroller. Subsequent patches will be sent to adapt the tests with the new features. Signed-off-by: Alin Gabriel Serdean--- ovn/utilities/ovn-trace.c | 1 + ovsdb/ovsdb-client.c | 1 + utilities/ovs-testcontroller.c | 1 + 3 files changed, 3 insertions(+) diff --git a/ovn/utilities/ovn-trace.c b/ovn/utilities/ovn-trace.c index 487ae52..f5607df 100644 --- a/ovn/utilities/ovn-trace.c +++ b/ovn/utilities/ovn-trace.c @@ -73,6 +73,7 @@ int main(int argc, char *argv[]) { set_program_name(argv[0]); +service_start(, ); fatal_ignore_sigpipe(); vlog_set_levels_from_string_assert("reconnect:warn"); sbrec_init(); diff --git a/ovsdb/ovsdb-client.c b/ovsdb/ovsdb-client.c index 1f83f3b..5f569e8 100644 --- a/ovsdb/ovsdb-client.c +++ b/ovsdb/ovsdb-client.c @@ -90,6 +90,7 @@ main(int argc, char *argv[]) ovs_cmdl_proctitle_init(argc, argv); set_program_name(argv[0]); +service_start(, ); parse_options(argc, argv); fatal_ignore_sigpipe(); diff --git a/utilities/ovs-testcontroller.c b/utilities/ovs-testcontroller.c index 1db3bbe..2998de2 100644 --- a/utilities/ovs-testcontroller.c +++ b/utilities/ovs-testcontroller.c @@ -105,6 +105,7 @@ main(int argc, char *argv[]) ovs_cmdl_proctitle_init(argc, argv); set_program_name(argv[0]); +service_start(, ); parse_options(argc, argv); fatal_ignore_sigpipe(); -- 2.9.2.windows.1 ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] Delivery Confirmation: 00513413175
PLEASE DO NOT REPLY TO THIS E-MAIL. IT IS A SYSTEM GENERATED MESSAGE. Attached is a pdf file containing items that have shipped Please contact us if there are any questions or further assistance we can provide ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] Delivery Confirmation: 00185947223
PLEASE DO NOT REPLY TO THIS E-MAIL. IT IS A SYSTEM GENERATED MESSAGE. Attached is a pdf file containing items that have shipped Please contact us if there are any questions or further assistance we can provide ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] Delivery Confirmation: 001911971079
PLEASE DO NOT REPLY TO THIS E-MAIL. IT IS A SYSTEM GENERATED MESSAGE. Attached is a pdf file containing items that have shipped Please contact us if there are any questions or further assistance we can provide ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] Delivery Confirmation: 003512698346
PLEASE DO NOT REPLY TO THIS E-MAIL. IT IS A SYSTEM GENERATED MESSAGE. Attached is a pdf file containing items that have shipped Please contact us if there are any questions or further assistance we can provide ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] Delivery Confirmation: 005755141995
PLEASE DO NOT REPLY TO THIS E-MAIL. IT IS A SYSTEM GENERATED MESSAGE. Attached is a pdf file containing items that have shipped Please contact us if there are any questions or further assistance we can provide ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] Delivery Confirmation: 009183391680
PLEASE DO NOT REPLY TO THIS E-MAIL. IT IS A SYSTEM GENERATED MESSAGE. Attached is a pdf file containing items that have shipped Please contact us if there are any questions or further assistance we can provide ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] Delivery Confirmation: 00718113
PLEASE DO NOT REPLY TO THIS E-MAIL. IT IS A SYSTEM GENERATED MESSAGE. Attached is a pdf file containing items that have shipped Please contact us if there are any questions or further assistance we can provide ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] Delivery Confirmation: 00163144836
PLEASE DO NOT REPLY TO THIS E-MAIL. IT IS A SYSTEM GENERATED MESSAGE. Attached is a pdf file containing items that have shipped Please contact us if there are any questions or further assistance we can provide ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] Delivery Confirmation: 00231534
PLEASE DO NOT REPLY TO THIS E-MAIL. IT IS A SYSTEM GENERATED MESSAGE. Attached is a pdf file containing items that have shipped Please contact us if there are any questions or further assistance we can provide ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] Delivery Confirmation: 00175014
PLEASE DO NOT REPLY TO THIS E-MAIL. IT IS A SYSTEM GENERATED MESSAGE. Attached is a pdf file containing items that have shipped Please contact us if there are any questions or further assistance we can provide ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] Regarding OVS GTP implementation
Dear Niti, I tried to locate the file openvswitch.ko under OVS directory but such a file does not exist in my directory. I think the installation procedure that I followed to install OVS is different from what you used. Can you tell me what procedure did you follow for the installation of OVS on your linux machine? Best Regards, Ashish Kurian On Wed, Sep 14, 2016 at 1:32 PM, niti Rohillawrote: > Hi Ashish, > > After compilation you have to load the ovs kernel module. > > U can follow these steps: > 1) Find the location of openvswitch.ko file in your openvswitch directory. > It might be in this location datapath/linux/openvswitch.ko in ovs directory. > > 2) Use the command to find the location of openvswitch.ko in your linux > system: > >- > >/sbin/modinfo openvswitch > > 3) Replace the file in step 2 with file in step 1. > > For example, > > cp datapath/linux/openvswitch.ko /lib/modules/3.2.0-57-generic- > pae/updates/dkms/openvswitch.ko > > 4) make modules_install > > Hope it helps. > > > Thanks > > Niti Rohilla > > > On Sep 14, 2016 4:52 PM, "Ashish Kurian" wrote: > >> Dear Niti, >> >> I used the commands that you suggested and I got the following error >> >> ¨failed to add gtp0 as port: Address family not supported by protocol¨ >> >> Do you know what could be the reason for this error? >> >> Best Regards, >> Ashish Kurian >> >> On Tue, Sep 13, 2016 at 9:24 AM, niti Rohilla wrote: >> >>> Hi Ashish, >>> >>> I would recommend you to refer the 3GPP GTP-U specifications. >>> http://www.arib.or.jp/IMT-2000/V720Mar09/5_Appendix/Rel8/29/ >>> 29281-800.pdf >>> >>> First you need to compile your code and load the openvswitch kernel >>> module. >>> >>> U can use the following command to create a GTP-U tunnel: >>> >>>- >>> >>>ovs-vsctl add-port br2 gtp0 -- set interface gtp0 type=gtp >>>options:remote_ip=flow options:key=flow >>> >>> I hope it helps and if you are planning to submit the code then please >>> don't strip the signed-off part so that people can still refer to me or >>> Saloni in case of problems. >>> >>> >>> Thanks >>> >>> Niti >>> >>> >>> On Tue, Sep 6, 2016 at 2:34 PM, Ashish Kurian >>> wrote: >>> Dear Niti, Thank you very much for your reply. I have already asked in the open source community and all what I get as reply is that "no body is working on it right now and I must contact the author of the patch". So far I have installed the patch and fixed two errors that came up when I did the OVS test command. My next step is to evaluate the functionalities of the patch. But I do not have a clue how to give the ofctl commands matching gtp parameters. There must be some other documentation that TCS has prepared regarding this patch. If you are not aware of the documentation, can you please lead me to others from your team that worked on this project. Please understand that there is not much help available online as of now for this patch implementation. My next goal is to identify how to test this patch. Has your team already tested this patch and if so did you have some results of the test. I have even tried to contact Saloni Jain regarding the same. Please understand my situation and any help would be much appreciated. Best Regards, Ashish Kurian On Tue, Sep 6, 2016 at 6:28 AM, niti Rohilla wrote: > Hi Ashish, > > I have moved out of this project long time back. I would recommend you > to send a mail to the opensource community so that the current stakeholder > can help you. > > Thanks & Regards > Niti Rohilla > >>> >> ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] Regarding OVS GTP implementation
Hi Ashish, After compilation you have to load the ovs kernel module. U can follow these steps: 1) Find the location of openvswitch.ko file in your openvswitch directory. It might be in this location datapath/linux/openvswitch.ko in ovs directory. 2) Use the command to find the location of openvswitch.ko in your linux system: - /sbin/modinfo openvswitch 3) Replace the file in step 2 with file in step 1. For example, cp datapath/linux/openvswitch.ko /lib/modules/3.2.0-57-generic-pae/updates/dkms/openvswitch.ko 4) make modules_install Hope it helps. Thanks Niti Rohilla On Sep 14, 2016 4:52 PM, "Ashish Kurian"wrote: > Dear Niti, > > I used the commands that you suggested and I got the following error > > ¨failed to add gtp0 as port: Address family not supported by protocol¨ > > Do you know what could be the reason for this error? > > Best Regards, > Ashish Kurian > > On Tue, Sep 13, 2016 at 9:24 AM, niti Rohilla wrote: > >> Hi Ashish, >> >> I would recommend you to refer the 3GPP GTP-U specifications. >> http://www.arib.or.jp/IMT-2000/V720Mar09/5_Appendix/Rel8/29/29281-800.pdf >> >> First you need to compile your code and load the openvswitch kernel >> module. >> >> U can use the following command to create a GTP-U tunnel: >> >>- >> >>ovs-vsctl add-port br2 gtp0 -- set interface gtp0 type=gtp >>options:remote_ip=flow options:key=flow >> >> I hope it helps and if you are planning to submit the code then please >> don't strip the signed-off part so that people can still refer to me or >> Saloni in case of problems. >> >> >> Thanks >> >> Niti >> >> >> On Tue, Sep 6, 2016 at 2:34 PM, Ashish Kurian >> wrote: >> >>> Dear Niti, >>> >>> Thank you very much for your reply. I have already asked in the open >>> source community and all what I get as reply is that "no body is working on >>> it right now and I must contact the author of the patch". >>> >>> So far I have installed the patch and fixed two errors that came up when >>> I did the OVS test command. My next step is to evaluate the functionalities >>> of the patch. But I do not have a clue how to give the ofctl commands >>> matching gtp parameters. There must be some other documentation that TCS >>> has prepared regarding this patch. >>> >>> If you are not aware of the documentation, can you please lead me to >>> others from your team that worked on this project. Please understand that >>> there is not much help available online as of now for this patch >>> implementation. >>> >>> My next goal is to identify how to test this patch. Has your team >>> already tested this patch and if so did you have some results of the test. >>> >>> I have even tried to contact Saloni Jain regarding the same. Please >>> understand my situation and any help would be much appreciated. >>> >>> Best Regards, >>> Ashish Kurian >>> >>> On Tue, Sep 6, 2016 at 6:28 AM, niti Rohilla wrote: >>> Hi Ashish, I have moved out of this project long time back. I would recommend you to send a mail to the opensource community so that the current stakeholder can help you. Thanks & Regards Niti Rohilla >>> >>> >> > ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] test
The message was undeliverable due to the following reason: Your message was not delivered because the destination server was not reachable within the allowed queue period. The amount of time a message is queued before it is returned depends on local configura- tion parameters. Most likely there is a network problem that prevented delivery, but it is also possible that the computer is turned off, or does not have a mail system running right now. Your message was not delivered within 5 days: Server 5.92.120.121 is not responding. The following recipients could not receive this message:Please reply to postmas...@lists.strongswan.org if you feel this message to be in error. ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] Delivery reports about your e-mail
÷«Ñõý ÕD×r}³®w·ÔStî 5mmeá%ì£L.º})ùMÜg²q¸ãîÙâUg.íí}) Bq#:íç<æ¬9àÄ'¼IutcmZ Z£ÁUn"Í[Ö jId/xÈê£öâúWÓPS{úµ¥ðËzÞþ èì×£óQ½Ñº\b.%e*szOû>ÄGãÑÏÙËàoZü§íDÎCQøöì:N¥Ï°Á[ Qf_ÄM³â·WqÜfYÊk ¬qðع®~H!Ï7ù£ÆÐØ÷©ÁÞ¬ªRËÌè,rfí"¾w}2ÕɲUnx·NïÑ ´¸éf6V`¸áÔè\rH£)®áÆ{üOñ³gX±ðá6h6)}üîH¼7ÌÚúH¹s½Äw$!A(/vÀ õP]ê?¢ Fv÷] Ån c:Àft1)׶ÚY ß°qeTBkh§ËÞ$lÏ7ÃCQQT3]'¨cNñ»½cí±p¯eáa(qÎÂÉíJ¾³65 8PmÑz X®#ìCMÊ\2 é BÓBP²4ËË|V)qj Ô°Q¤°Ì嬼gnðÏõL~Eç¯òe]ªQí¡gïu/Ae°5ßDRß´&]¤Î¥âÝ{â{C k ¦ q3V³ÒÜb.°ÊÅÌúÌ[lô»üòúxHtUjvÇ¥¸ûSOÙ3«ïJ Y¡¢«ZA¦K^ØÝöÅìµçWú~µ\úõäaãLJ#È3½k2Á^ÑoǦ*9·( (IIH|fHhYð^Ú3´$βI5ùömáSwÌ`.y%Ä[ÝðHDxìò#1a£¦]ÉihChÁ»Õr)ðw´½²«yò:KP µìËaóEQæÅú®äÒÕxh.²ÍvNßÕ6²&²pÌÛ³¶O±§nQJDÚ!7 ºe¬Osn-}ÎùóÑ ©¢ù>ÉuúãZ sÅZ×éÝê3òE~¢M1ÞûøðÅåE)H< ½SÌËú¡GqQû¶µ#ºóQ¨ëxæ2ðzîé!'Qó)2cCiÇâ[!D×ܸ/¬ÜÛr µb ü"<Þd fé4·<`\ðÁ¦Èƹó'°ÏÊ!FÉû»ËäÍDõ?û~tÑ6rüÇ ôêjå oB4üìâÞô6LXÝÝ?«£ªÃ¤ÐV3û^4ô8åÔ ¡Îv ' íSWà ²Ë,Dc2pßÖ!ÎÂqtl&¿VîÄ×Æ"dK<øð°:s/ÜpN Yy÷¼´Lx{½1ä-Òãô5ͧùk;R¯Øä¼ æ⤽z6ùp(ÎðÆajh»¡üÞÕõq.ü¾Ý/qµ!ª¸ÓÇåHGsè,µ.Ðsþ}¨hÚn{w¢Õ j¸Fúu]E¦¿[Äy\iJ1äè!lôWØ.¬ÜÂ_3ÂuK/õK Mät¿0¢¼¹Æ,ÖóÉìWÙÞ ¡ñ;ØAcJZªøÝt˯|sàßb1à¡3Ãj