Re: [ovs-dev] [PATCHv2 1/2] bridge: Let ofprotos run once before reporting configuration complete.
2013/12/14 Ben Pfaff : > Occasionally in the unit tests the following race can happen: > >1. ovs-vsctl updates database >2. ovs-vswitchd reconfigures, notifies ovs-vsctl that it is complete >3. ovs-appctl ofproto/trace fails to see newly added port >4. ovs-vswitchd main loop calls ofproto's ->type_run(), making the > new port visible to translation. Thanks! -- Vasiliy Tolstov, e-mail: v.tols...@selfip.ru jabber: v...@selfip.ru ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] World Congress 2014 Invitation.
Dear Friends, On behalf of Global association for human rights defense (GAHRD), It is our great pleasure to invite you to the 2014 World Congress on Human Trafficking, Sexual Harassment,Prostitution and Sex Work. The Congress will be held at the California University, United State of America from (February 17th-21th 2014) and from (February 24th-28th 2014) at Conf & Multimedia in Dakar Senegal. This congress has the potential to save and change the lives of millions of women and man who are victims of violence because of their gender, and millions of other victims of domestic violence. Sponsored by other benevolent donors worldwide. For more details and requirement for your registration, kindly contact the secretariat office via Dr. Wayne Smith E-mail: [secretworldc...@mynet.com] or phone [+1- 626-795-6999]. Also feel free to contact me if you need any further details related to this events. This world congress provides the most comprehensive frame work in the world to prevent violence against women, protect its victims, prosecute the perpetrators and set up a wide range of measures to address this scourge in all its complexity. Also note that all interested delegates that requires entry visa to enter the California United States to attend this congress will be assisted by the organization, in obtaining the visa in their passport. Free air round trip tickets to attend this meeting will be provided to all participants. The Workshop welcomes paper presentation from any interested participants willing to present papers during the congress. Sincerely, Ms. Hannah Paul ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] [threaded reval 1/2] unixctl: Make dpif/dump-flows fetch kernel flows.
From: Joe Stringer Previously we used facets for ovs-appctl dpif/dump-flows commands. This switches to fetching flows directly from the dpif. This is necessary because future patches remove facets and subfacet entirely. Signed-off-by: Joe Stringer Signed-off-by: Ethan Jackson Acked-by: Ethan Jackson Acked-by: Ben Pfaff --- ofproto/ofproto-dpif.c | 82 +++--- tests/ofproto-dpif.at | 82 +- 2 files changed, 78 insertions(+), 86 deletions(-) diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c index 2b07158..9946870 100644 --- a/ofproto/ofproto-dpif.c +++ b/ofproto/ofproto-dpif.c @@ -5735,14 +5735,34 @@ ofproto_unixctl_dpif_enable_megaflows(struct unixctl_conn *conn, unixctl_command_reply(conn, "megaflows enabled"); } +static bool +ofproto_dpif_contains_flow(const struct ofproto_dpif *ofproto, + const struct nlattr *key, size_t key_len) +{ +enum odp_key_fitness fitness; +struct ofproto_dpif *ofp; +struct flow flow; + +xlate_receive(ofproto->backer, NULL, key, key_len, &flow, &fitness, &ofp, + NULL, NULL, NULL, NULL); +return ofp == ofproto; +} + static void ofproto_unixctl_dpif_dump_flows(struct unixctl_conn *conn, int argc OVS_UNUSED, const char *argv[], void *aux OVS_UNUSED) { struct ds ds = DS_EMPTY_INITIALIZER; +const struct dpif_flow_stats *stats; const struct ofproto_dpif *ofproto; -struct subfacet *subfacet; +struct dpif_flow_dump flow_dump; +const struct nlattr *actions; +const struct nlattr *mask; +const struct nlattr *key; +size_t actions_len; +size_t mask_len; +size_t key_len; ofproto = ofproto_dpif_lookup(argv[1]); if (!ofproto) { @@ -5750,57 +5770,29 @@ ofproto_unixctl_dpif_dump_flows(struct unixctl_conn *conn, return; } -update_stats(ofproto->backer); - -HMAP_FOR_EACH (subfacet, hmap_node, &ofproto->backer->subfacets) { -struct facet *facet = subfacet->facet; -struct odputil_keybuf maskbuf; -struct ofpbuf mask; - -if (facet->ofproto != ofproto) { +ds_init(&ds); +dpif_flow_dump_start(&flow_dump, ofproto->backer->dpif); +while (dpif_flow_dump_next(&flow_dump, &key, &key_len, &mask, &mask_len, + &actions, &actions_len, &stats)) { +if (!ofproto_dpif_contains_flow(ofproto, key, key_len)) { continue; } -ofpbuf_use_stack(&mask, &maskbuf, sizeof maskbuf); -if (enable_megaflows) { -odp_flow_key_from_mask(&mask, &facet->xout.wc.masks, - &facet->flow, UINT32_MAX); -} - -odp_flow_format(subfacet->key, subfacet->key_len, -mask.data, mask.size, NULL, &ds, false); - -ds_put_format(&ds, ", packets:%"PRIu64", bytes:%"PRIu64", used:", - subfacet->dp_packet_count, subfacet->dp_byte_count); -if (subfacet->used) { -ds_put_format(&ds, "%.3fs", - (time_msec() - subfacet->used) / 1000.0); -} else { -ds_put_format(&ds, "never"); -} -if (subfacet->facet->tcp_flags) { -ds_put_cstr(&ds, ", flags:"); -packet_format_tcp_flags(&ds, subfacet->facet->tcp_flags); -} - +odp_flow_format(key, key_len, mask, mask_len, NULL, &ds, false); +ds_put_cstr(&ds, ", "); +dpif_flow_stats_format(stats, &ds); ds_put_cstr(&ds, ", actions:"); -if (facet->xout.slow) { -uint64_t slow_path_stub[128 / 8]; -const struct nlattr *actions; -size_t actions_len; - -compose_slow_path(ofproto, &facet->flow, facet->xout.slow, - slow_path_stub, sizeof slow_path_stub, - &actions, &actions_len); -format_odp_actions(&ds, actions, actions_len); -} else { -format_odp_actions(&ds, facet->xout.odp_actions.data, - facet->xout.odp_actions.size); -} +format_odp_actions(&ds, actions, actions_len); ds_put_char(&ds, '\n'); } -unixctl_command_reply(conn, ds_cstr(&ds)); +if (dpif_flow_dump_done(&flow_dump)) { +ds_clear(&ds); +ds_put_format(&ds, "dpif/dump_flows failed: %s", ovs_strerror(errno)); +unixctl_command_reply_error(conn, ds_cstr(&ds)); +} else { +unixctl_command_reply(conn, ds_cstr(&ds)); +} ds_destroy(&ds); } diff --git a/tests/ofproto-dpif.at b/tests/ofproto-dpif.at index a455119..90faea1 100644 --- a/tests/ofproto-dpif.at +++ b/tests/ofproto-dpif.at @@ -2370,12 +2370,12 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00: AT_CHECK([ovs-appctl netdev-dummy/receive p3
[ovs-dev] RE
Greetings, If you have received this email then you are one of the lucky fellows to benefit from us. On behalf of myself and family, i am happy to inform you that i and my wife Gillian have chosen you to be one of our donation beneficiaries from our Euro Millions Jackpot win of 148Million (One hundred and Forty Eight Million Pounds Sterling) that held just last year August. Based on the win we decided that just 25 people be selected for this benefit, leaving each beneficiary with 1.5million Pounds Sterling each to better their lives because we cannot enjoy it all alone, as the win is for sharing. This donation is made out to you as to enable you strengthen your personal issues and mostly to generously help us extend hands of giving to the less privilege, orphans and charity organizations within your locality. This might appear strange but it is a reality, so do get back to us quickly via email at: adriangbayford...@yeah.net Regards, Adrian & Gillian Bayford. ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] Bug#732260: openvswitch: datapath kernel module fails to compile with linux kernel version 3.11
Package: openvswitch Version: 1.9.3+git20131029-1.1 Severity: important Dear Maintainer, I was upgrading our test server to the newest kernel shipping with Debian/unstable, namely "3.11-2", and DKMS failed on openvswitch-datapath-dkms. I attached the error messages from the DKMS make.log file. Looking at the source file and the referenced header file, it seems that the Linux kernel now supports VLAN EtherTypes other than 0x8100. This has resulted in calls that add VLAN tags having one extra parameter, the desired EtherType. This sounds like it would require a bigger overhaul in the openvswitch design, but for now I would suggest adding a simple patch that adds ETH_P_8021Q as the extra parameter when compiling for 3.11. Note that the new parameter was added in the middle of the function's parameter list, not at the end. Log follows: CC [M] /var/lib/dkms/openvswitch/1.9.3+git20131029/build/datapath/linux/actions.o /var/lib/dkms/openvswitch/1.9.3+git20131029/build/datapath/linux/actions.c: In function ‘pop_vlan’: /var/lib/dkms/openvswitch/1.9.3+git20131029/build/datapath/linux/actions.c:104:2: error: too few arguments to function ‘__vlan_hwaccel_put_tag’ __vlan_hwaccel_put_tag(skb, ntohs(tci)); ^ In file included from /var/lib/dkms/openvswitch/1.9.3+git20131029/build/datapath/linux/compat/include/linux/if_vlan.h:6:0, from /var/lib/dkms/openvswitch/1.9.3+git20131029/build/datapath/linux/actions.c:29: /usr/src/linux-headers-3.11-2-common/include/linux/if_vlan.h:236:31: note: declared here static inline struct sk_buff *__vlan_hwaccel_put_tag(struct sk_buff *skb, ^ /var/lib/dkms/openvswitch/1.9.3+git20131029/build/datapath/linux/actions.c: In function ‘push_vlan’: /var/lib/dkms/openvswitch/1.9.3+git20131029/build/datapath/linux/actions.c:124:2: error: too few arguments to function ‘__vlan_hwaccel_put_tag’ __vlan_hwaccel_put_tag(skb, ntohs(vlan->vlan_tci) & ~VLAN_TAG_PRESENT); ^ In file included from /var/lib/dkms/openvswitch/1.9.3+git20131029/build/datapath/linux/compat/include/linux/if_vlan.h:6:0, from /var/lib/dkms/openvswitch/1.9.3+git20131029/build/datapath/linux/actions.c:29: /usr/src/linux-headers-3.11-2-common/include/linux/if_vlan.h:236:31: note: declared here static inline struct sk_buff *__vlan_hwaccel_put_tag(struct sk_buff *skb, ^ make[4]: *** [/var/lib/dkms/openvswitch/1.9.3+git20131029/build/datapath/linux/actions.o] Error 1 ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH] [RFC] Alternate approach to MPLS.
Hi Ben, On Fri, Dec 13, 2013 at 12:28:21AM -0800, Ben Pfaff wrote: > I've been a little frustrated with the current approach to MPLS, because it > seems quite difficult to understand. One particularly difficult bit for > me is the variables used during translation, e.g. mpls_depth_delta and > pre_push_mpls_lse. And what we end up with is support for a single MPLS > label, which I don't think is going to make any real-world users happy. > > I think that we can do something easier to understand and more powerful > by just keeping track of all the labels in struct flow. This patch is a > first stab at that. It's incomplete--in particular I have not implemented > commit_mpls_action() because it seems slightly tricky and it's very late > at night here--and obviously untested, but I'd appreciate feedback on the > approach. Its quite a bit of code to digest but in general my feeling at this point is that this approach could be made to work. There are a number of corner cases that my patchset (the previous approach) tries to address. And I believe they contributed to most of the more difficult to understand code. I have tried mentally running through a number of them to see how they might work out with this new approach. One that seems slightly tricky is the following in the case that MPLS LSEs are being pushed before VLAN tags. Assuming no VLAN is present in the original packet: push_vlan,push_mpls,push_vlan Or, alternatively, if a VLAN is present in the original packet: set_vlan_vid,push_mpls,push_vlan I believe that with this new approach the first VLAN action would be silently dropped. I believe that this case could be handled using recirculation and in the mean time detected and rejected. But I wanted to bring it to your attention to see how you feel about it. > I think that if this works out then it would obviate the need for patches > "odp: Allow VLAN actions after MPLS actions" and "lib: Support pushing of > MPLS LSE before or after VLAN tag". Yes, that seems likely. ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] [PATCH -next] openvswitch: remove duplicated include from flow_table.c
From: Wei Yongjun Remove duplicated include. Signed-off-by: Wei Yongjun --- net/openvswitch/flow_table.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/net/openvswitch/flow_table.c b/net/openvswitch/flow_table.c index e425427..c686655 100644 --- a/net/openvswitch/flow_table.c +++ b/net/openvswitch/flow_table.c @@ -44,8 +44,6 @@ #include #include -#include "datapath.h" - #define TBL_MIN_BUCKETS1024 #define REHASH_INTERVAL(10 * 60 * HZ) ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev