[ovs-dev] [PATCH] include/linux/openvswitch.h: Make OVSP_LOCAL 32-bit.

2013-01-07 Thread Jarno Rajahalme
Signed-off-by: Jarno Rajahalme --- ODP ports are now 32-bit, so OVSP_LOCAL should be too. (Internally, kernel module still keeps port numbers 16-bit, though.) --- include/linux/openvswitch.h |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/openvswitch.h b/incl

Re: [ovs-dev] [PATCH 3/3] dpif-linux: Give each port its own userspace-kernel channel.

2013-01-07 Thread Isaku Yamahata
On Sat, Jan 05, 2013 at 11:25:57AM -0800, Justin Pettit wrote: > Userspace-kernel communication is a possible bottleneck when OVS is > receiving a large number of flow set up requests. To help prevent a bad > actor from consuming too much of this resource, we introduced channels > to segegrate tra

Re: [ovs-dev] [PATCH 3/3] dpif-linux: Give each port its own userspace-kernel channel.

2013-01-07 Thread Justin Pettit
On Jan 7, 2013, at 3:11 AM, Isaku Yamahata wrote: >> +if (++dpif->event_offset >= dpif->n_events) { >> +dpif->event_offset = dpif->n_events = 0; >> +} > > dpfi->event_offset isn't initialized as zero. Perhaps I missed a spot, but I didn't see any issues. The dpif st

Re: [ovs-dev] [PATCH 1/3] ofproto-dpif: Use proper special value for the reserved PID.

2013-01-07 Thread Ben Pfaff
On Sat, Jan 05, 2013 at 11:25:55AM -0800, Justin Pettit wrote: > The compose_slow_path() function used UINT16_MAX for > dpif_port_get_pid(), when it should be UINT32_MAX to get the proper > reserved PID. > > Signed-off-by: Justin Pettit Looks good, thanks. ___

Re: [ovs-dev] [PATCH 2/3] dpif-linux: Log the correct port-PID mapping.

2013-01-07 Thread Ben Pfaff
On Sat, Jan 05, 2013 at 11:25:56AM -0800, Justin Pettit wrote: > When adding a port, the code previously logged the requested port number > (which is generally UINT32_MAX) instead of the assigned port number. > > Signed-off-by: Justin Pettit Looks good, thanks. __

Re: [ovs-dev] [PATCH] include/linux/openvswitch.h: Make OVSP_LOCAL 32-bit.

2013-01-07 Thread Jesse Gross
On Mon, Jan 7, 2013 at 2:45 AM, Jarno Rajahalme wrote: > > Signed-off-by: Jarno Rajahalme > --- > ODP ports are now 32-bit, so OVSP_LOCAL should be too. > (Internally, kernel module still keeps port numbers 16-bit, though.) Justin, I see two direct uses of OVSP_LOCAL in the ofproto directory. I

Re: [ovs-dev] [PATCH] include/linux/openvswitch.h: Make OVSP_LOCAL 32-bit.

2013-01-07 Thread Jesse Gross
On Mon, Jan 7, 2013 at 2:45 AM, Jarno Rajahalme wrote: > > Signed-off-by: Jarno Rajahalme > --- > ODP ports are now 32-bit, so OVSP_LOCAL should be too. > (Internally, kernel module still keeps port numbers 16-bit, though.) Applied, thank you. I included your comments about the ODP ports in the

Re: [ovs-dev] [PATCH] include/linux/openvswitch.h: Make OVSP_LOCAL 32-bit.

2013-01-07 Thread Justin Pettit
On Jan 7, 2013, at 9:50 AM, Jesse Gross wrote: > On Mon, Jan 7, 2013 at 2:45 AM, Jarno Rajahalme > wrote: >> >> Signed-off-by: Jarno Rajahalme >> --- >> ODP ports are now 32-bit, so OVSP_LOCAL should be too. >> (Internally, kernel module still keeps port numbers 16-bit, though.) > > Justin,

Re: [ovs-dev] [PATCH 3/3] dpif-linux: Give each port its own userspace-kernel channel.

2013-01-07 Thread Ben Pfaff
On Sat, Jan 05, 2013 at 11:25:57AM -0800, Justin Pettit wrote: > +- The Linux datapath implementation creates a different kernel- > + userspace channel for each port instead of sharing a static 16 > + channels to provide better performance isolation. I think that's going to prompt mo

Re: [ovs-dev] [PATCH 3/3] bond: Fix comment on bond_entry::tag

2013-01-07 Thread Ben Pfaff
On Sat, Jan 05, 2013 at 09:42:16PM +, Zoltan Kiss wrote: > The hash entry tag connects to facet(s), not slaves. > > Signed-off-by: Zoltan Kiss > --- > lib/bond.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/lib/bond.c b/lib/bond.c > index a95c9b0..2446d7e 100644

[ovs-dev] [PATCH] bond: Correct comments.

2013-01-07 Thread Ben Pfaff
Signed-off-by: Ben Pfaff CC: Zoltan Kiss --- lib/bond.c |9 + 1 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/bond.c b/lib/bond.c index 2c59f9d..462ebd8 100644 --- a/lib/bond.c +++ b/lib/bond.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nici

Re: [ovs-dev] [PATCH 2/3] bond: Do not rebalance hash entries with 0 traffic

2013-01-07 Thread Ben Pfaff
On Sat, Jan 05, 2013 at 09:42:02PM +, Zoltan Kiss wrote: > During rebalancing there could be hash entries with 0 bytes traffic > on them. It is unnecessary to move them. > > Signed-off-by: Zoltan Kiss Can this ever trigger? I don't see how these hash entries would end up on the list iterate

Re: [ovs-dev] [PATCH] bond: Correct comments.

2013-01-07 Thread Ethan Jackson
Seems fine to me. I might change 'Pick' to 'Picks' in the comment. Acked-by: Ethan Jackson On Mon, Jan 7, 2013 at 11:34 AM, Ben Pfaff wrote: > Signed-off-by: Ben Pfaff > CC: Zoltan Kiss > --- > lib/bond.c |9 + > 1 files changed, 5 insertions(+), 4 deletions(-) > > diff --git

Re: [ovs-dev] [PATCH] bond: Correct comments.

2013-01-07 Thread Ben Pfaff
Thanks, I made that fix and applied this to master. On Mon, Jan 07, 2013 at 12:20:56PM -0800, Ethan Jackson wrote: > Seems fine to me. I might change 'Pick' to 'Picks' in the comment. > > Acked-by: Ethan Jackson > > > On Mon, Jan 7, 2013 at 11:34 AM, Ben Pfaff wrote: > > > Signed-off-by: Be

Re: [ovs-dev] [PATCH 1/3] bond: Change rebalance ratio to be more fair

2013-01-07 Thread Ben Pfaff
Ethan, do you have any thoughts about this patch? It seems reasonable, but I'd like another set of eyes on it before I apply it. On Sat, Jan 05, 2013 at 09:41:19PM +, Zoltan Kiss wrote: > The old algorithm tries to converge to 0, despite it would mean a very > unbalanced situation. 1 is a mor

[ovs-dev] [PATCH] ovsdb-doc: Document immutable columns.

2013-01-07 Thread Ben Pfaff
Signed-off-by: Ben Pfaff --- ovsdb/ovsdb-doc.in |2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/ovsdb/ovsdb-doc.in b/ovsdb/ovsdb-doc.in index aa4fae2..b328326 100755 --- a/ovsdb/ovsdb-doc.in +++ b/ovsdb/ovsdb-doc.in @@ -212,6 +212,8 @@ def columnGroupToNroff(table, group

Re: [ovs-dev] [PATCH 1/3] bond: Change rebalance ratio to be more fair

2013-01-07 Thread Zoltan Kiss
Oops, I've missed the "#include " from this second version of the patch. To avoid warnings, I will resend it. Zoli On 07/01/13 20:27, Ben Pfaff wrote: Ethan, do you have any thoughts about this patch? It seems reasonable, but I'd like another set of eyes on it before I apply it. On Sat, Jan

[ovs-dev] [PATCH 1/3] bond: Change rebalance ratio to be more fair

2013-01-07 Thread Zoltan Kiss
The old algorithm tries to converge to 0, despite it would mean a very unbalanced situation. 1 is a more desirable goal. Signed-off-by: Zoltan Kiss --- lib/bond.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/bond.c b/lib/bond.c index 2c59f9d..2f8afdd 100644 --- a

Re: [ovs-dev] [PATCH 1/3] bond: Change rebalance ratio to be more fair

2013-01-07 Thread Ben Pfaff
OK, thanks. I'd still like some comments from Ethan or another person who understands the bonding code. On Mon, Jan 07, 2013 at 10:03:00PM +, Zoltan Kiss wrote: > Oops, I've missed the "#include " from this second version > of the patch. To avoid warnings, I will resend it. > > Zoli > > On

Re: [ovs-dev] [PATCH 1/3] bond: Change rebalance ratio to be more fair

2013-01-07 Thread Ethan Jackson
This seems fine to me. My only comment is that we should probably add a bit more explanation. It took me 20 minutes just to figure out what this code is intended to do. > +/* Ideal ratio is 1, move it if the new ratio is closer to > it. */ > Perhaps we could expand this comment a b

Re: [ovs-dev] [PATCH 2/3] bond: Do not rebalance hash entries with 0 traffic

2013-01-07 Thread Zoltan Kiss
Hi, Originally I've intended to avoid such kind of messages: Jan 3 17:18:13 localhost ovs-vswitchd: 00095|bond|INFO|bond bond0: shift 0kB of load (with hash 79) from eth3 to eth1 (now carrying 1153733kB and 0kB load, respectively) But now I see the log shows tx_bytes / 1024, which could be zer

Re: [ovs-dev] [PATCH 1/3] bond: Change rebalance ratio to be more fair

2013-01-07 Thread Zoltan Kiss
On 07/01/13 22:12, Ethan Jackson wrote: This seems fine to me. My only comment is that we should probably add a bit more explanation. It took me 20 minutes just to figure out what this code is intended to do. > +/* Ideal ratio is 1, move it if the new ratio is closer to it

Re: [ovs-dev] [PATCH 1/3] bond: Change rebalance ratio to be more fair

2013-01-07 Thread Ben Pfaff
On Mon, Jan 07, 2013 at 10:23:25PM +, Zoltan Kiss wrote: > On 07/01/13 22:12, Ethan Jackson wrote: > >This seems fine to me. My only comment is that we should probably add a > >bit more explanation. It took me 20 minutes just to figure out what > >this code is intended to do. > > > > > +

Re: [ovs-dev] [PATCH] rconn: Avoid memory leak in rconn_send_with_limit() on queue overflow.

2013-01-07 Thread Ethan Jackson
Acked-by: Ethan Jackson On Fri, Jan 4, 2013 at 1:48 PM, Ben Pfaff wrote: > Bug #14357. > Reported-by: Luca Giraudo > Signed-off-by: Ben Pfaff > --- > This leak has been around forever. I expect to backport it all the > way to 1.4. > > lib/rconn.c | 11 +-- > 1 files changed, 5 in

Re: [ovs-dev] [PATCH 3/3] bond: Fix comment on bond_entry::tag

2013-01-07 Thread Zoltan Kiss
On 07/01/13 19:33, Ben Pfaff wrote: On Sat, Jan 05, 2013 at 09:42:16PM +, Zoltan Kiss wrote: The hash entry tag connects to facet(s), not slaves. Signed-off-by: Zoltan Kiss --- lib/bond.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/bond.c b/lib/bond.c index a

[ovs-dev] [PATCH 1/3] bond: Change rebalance ratio to be more fair

2013-01-07 Thread Zoltan Kiss
The old algorithm tries to converge to 0, despite it would mean a very unbalanced situation. We're aiming for an ideal ratio of 1, meaning both the 'from' and 'to' slave have the same load. Therefore, we only move an entry if it decreases the load on from, and brings us closer to equal traffic loa

Re: [ovs-dev] [PATCH] rconn: Avoid memory leak in rconn_send_with_limit() on queue overflow.

2013-01-07 Thread Ben Pfaff
Thanks. I applied this to master and branch-1.[789]. I take back the claim about this bug going back farther than that; it only extends to 1.7. On Mon, Jan 07, 2013 at 02:33:28PM -0800, Ethan Jackson wrote: > Acked-by: Ethan Jackson > > > On Fri, Jan 4, 2013 at 1:48 PM, Ben Pfaff wrote: > >

[ovs-dev] [PATCH] bugtool: Add manpage to gitignore.

2013-01-07 Thread Ethan Jackson
Signed-off-by: Ethan Jackson --- utilities/bugtool/.gitignore |1 + 1 file changed, 1 insertion(+) diff --git a/utilities/bugtool/.gitignore b/utilities/bugtool/.gitignore index 4d31ed6..c242628 100644 --- a/utilities/bugtool/.gitignore +++ b/utilities/bugtool/.gitignore @@ -1 +1,2 @@ /ovs-

Re: [ovs-dev] [PATCH] bugtool: Add manpage to gitignore.

2013-01-07 Thread Ben Pfaff
On Mon, Jan 07, 2013 at 03:13:50PM -0800, Ethan Jackson wrote: > Signed-off-by: Ethan Jackson Looks good, thanks. ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev

Re: [ovs-dev] [PATCH 1/3] bond: Change rebalance ratio to be more fair

2013-01-07 Thread Ben Pfaff
On Mon, Jan 07, 2013 at 10:47:51PM +, Zoltan Kiss wrote: > The old algorithm tries to converge to 0, despite it would mean a very > unbalanced situation. We're aiming for an ideal ratio of 1, meaning both > the 'from' and 'to' slave have the same load. Therefore, we only move an > entry if it

Re: [ovs-dev] [PATCH] bugtool: Add manpage to gitignore.

2013-01-07 Thread Ethan Jackson
Thanks, I've merged this. Ethan On Mon, Jan 7, 2013 at 3:15 PM, Ben Pfaff wrote: > On Mon, Jan 07, 2013 at 03:13:50PM -0800, Ethan Jackson wrote: > > Signed-off-by: Ethan Jackson > > Looks good, thanks. > ___ dev mailing list dev@openvswitch.org http

Re: [ovs-dev] [PATCH 3/3] dpif-linux: Give each port its own userspace-kernel channel.

2013-01-07 Thread Justin Pettit
On Jan 7, 2013, at 11:06 AM, Ben Pfaff wrote: > We can assume that that is the common case, but it looks like your > code goes farther than that and actually dereferences beyond array > bounds if the assumption is bad. If port_no is 10 but there are only > 5 ports, it looks very much to me that

[ovs-dev] [PATCHv2] dpif-linux: Give each port its own userspace-kernel channel.

2013-01-07 Thread Justin Pettit
Userspace-kernel communication is a possible bottleneck when OVS is receiving a large number of flow set up requests. To help prevent a bad actor from consuming too much of this resource, we introduced channels to segegrate traffic. Previously, we created 17 channels and round-robin assigned port

[ovs-dev] [PATCH 0/5] ipv4_tunnels: Modularize ipv4 tunneling.

2013-01-07 Thread Pravin B Shelar
From: Pravin Shelar Following patch series restructure GRE and IPIP tunneling code to make it modular. It adds ip_tunnel module which acts as generic tunneling layer which has common code. I have patch to do same for VXLAN too. In Addidtion to restructuring it adds demultiplexer for ipgre protoc

[ovs-dev] [PATCH 1/5] GRE: Add segmentation offload for GRE TAP device.

2013-01-07 Thread Pravin B Shelar
From: Pravin Shelar Signed-off-by: Pravin B Shelar --- include/linux/skbuff.h | 12 ++ include/net/gre.h |6 +++ net/ipv4/af_inet.c |1 + net/ipv4/gre.c | 101 net/ipv4/tcp.c |1 + net/ipv4/udp.c

[ovs-dev] [PATCH 2/5] GRE: Use RTNL for atomic protocol registration.

2013-01-07 Thread Pravin B Shelar
From: Pravin Shelar Currently gre demultiplexer uses its own spin-lock. We should rather RTNL lock. Suggested-by: Stephen Hemminger Signed-off-by: Pravin B Shelar --- drivers/net/ppp/pptp.c |4 net/ipv4/gre.c | 18 +- net/ipv4/ip_gre.c |4 3 fi

[ovs-dev] [PATCH 5/5] IP_TUNNEL: follow state of lower device

2013-01-07 Thread Pravin B Shelar
From: Pravin Shelar I reference patch posted for IPGRE: http://permalink.gmane.org/gmane.linux.network/226946 --8<--cut here-->8-- IP tunnels like other layered devices should propogate carrier and state from lower device to tunnel. Following patc

[ovs-dev] [PATCH 4/5] IPIP: Use ip-tunneling code.

2013-01-07 Thread Pravin B Shelar
From: Pravin Shelar Reuse common ip-tunneling code which is re-factored from GRE module. Signed-off-by: Pravin B Shelar --- net/ipv4/Kconfig |1 + net/ipv4/ipip.c | 778 ++ 2 files changed, 84 insertions(+), 695 deletions(-) diff --git

Re: [ovs-dev] [PATCH 0/16 v2.13] Basic MPLS actions and matches

2013-01-07 Thread Simon Horman
On Fri, Jan 04, 2013 at 09:19:57AM -0800, Ben Pfaff wrote: > Since Jesse is perpetually backlogged: if there are any parts of the > series that can be usefully applied without changing the datapath, let > me know, and I'll take care of it. Thanks. I believe that with a small amount of reshuffling

[ovs-dev] [PATCH 11/16] datapath: Add basic MPLS support to kernel

2013-01-07 Thread Simon Horman
Allow datapath to recognize and extract MPLS labels into flow keys and execute actions which push, pop, and set labels on packets. Based heavily on work by Leo Alterman and Ravi K. Cc: Ravi K Cc: Leo Alterman Reviewed-by: Isaku Yamahata Signed-off-by: Simon Horman --- v2.14 * Remove include

[ovs-dev] [PATCH 02/16] odp-util: commit_set_nw_action: use flow's innermost dl_type

2013-01-07 Thread Simon Horman
Use the innermost dl_type when decoding L3 and L4 data from a packet. Signed-off-by: Simon Horman --- v2.14 * No change v2.13 * No change v2.12 * Use flow_innermost_dl_type helper v2.11 * First post --- lib/odp-util.c |6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --gi

[ovs-dev] [PATCH 12/16] datapath: Split ovs_flow_extract

2013-01-07 Thread Simon Horman
Allow repeated extraction of flow from packets Split the L3 and above portion of ovs_flow_extract() out into ovs_flow_extract_l3_onwards() and call ovs_flow_extract_l3_onwards() from ovs_flow_extract(). This is to allow re-extraction of L3 and higher information using an ethernet type supplied by

[ovs-dev] [PATCH 08/16] Add support for set_mpls_ttl action

2013-01-07 Thread Simon Horman
This adds support for the OpenFlow 1.1+ set_mpls_ttl action. And also adds an NX set_mpls_ttl action. The handling of the TTL modification is entirely handled in userspace. Reviewed-by: Isaku Yamahata Signed-off-by: Simon Horman --- v2.14 * No change v2.13 * No change v2.12 * Use eth_type_m

[ovs-dev] [PATCH 16/16] datapath: Allow IP actions for MPLS

2013-01-07 Thread Simon Horman
Allow copy_ttl_in to function in the case where: a) The outer header is MPLS; b) The next-outer header is IP and; c) The resulting nw ttl will be different from its existing value In this circumstance a set ipv4 action will be used to adjust the TTL but the dl_type of the match will be ETH_P_MPLS_

[ovs-dev] [PATCH 15/16] datapath: ovs_flow_used: use encap_eth_type

2013-01-07 Thread Simon Horman
The ethernet type of an encapsulated frame may be obtained from actions. If so it should be used to correct decoding of L3 and L4 packet data. Signed-off-by: Simon Horman --- v2.14 * No change v2.13 * As suggested by Jarno Rajahalme - Initialise encap_eth_type as 0 in ovs_dp_process_received

[ovs-dev] [PATCH 04/16] actions: Allow secondary decoding of a flow

2013-01-07 Thread Simon Horman
Actions may provide information to allow further decoding of a flow. For example: In the case of MPLS, L3 and L4 information may not initially be decoded from the frame as the ethernet type of the frame is an MPLS type and no information is known about the type of the inner frame. However, the t

[ovs-dev] [PATCH 10/16] Add support for copy_ttl_in action

2013-01-07 Thread Simon Horman
This adds support for the OpenFlow 1.1+ copy_ttl_in action. And also adds an NX copy_ttl_out action. The implementation does not support copying in the case where the outermost header is IP as it is unclear to me that Open vSwtich has a notion of an inner IP header to copy the TLL from. The imple

[ovs-dev] [PATCH 14/16] datapath: ovs_flow_to_nlattrs: use encap_eth_type

2013-01-07 Thread Simon Horman
The ethernet type of an encapsulated frame may be obtained from actions. If so it should be used to allow a richer conversion of a flow to nlattrs. Signed-off-by: Simon Horman --- v2.14 * No change v2.13 * No change v2.12 * No change v2.11 * First post --- datapath/datapath.c |4 ++-- d

[ovs-dev] [PATCH 09/16] Add support for copy_ttl_out action

2013-01-07 Thread Simon Horman
This adds support for the OpenFlow 1.1+ copy_ttl_out action. And also adds an NX copy_ttl_out action. The implementation does not support copying in the case where the outermost header is IP as it is unclear to me that Open vSwtich has a notion of an inner IP header to copy the TLL from. The hand

[ovs-dev] [PATCH 03/16] packet: packet_get_tcp_flags: use flow's innermost dl_type

2013-01-07 Thread Simon Horman
Use the innermost dl_type when decoding L3 and L4 data from a packet. Signed-off-by: Simon Horman --- v2.14 * No change v2.13 * No change v2.12 * Use flow_innermost_dl_type helper v2.11 * First post --- lib/packets.c |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a

[ovs-dev] [PATCH 05/16] ofproto: Allow actions richer matches based on actions

2013-01-07 Thread Simon Horman
If the actions of a flow allow further decoding of L3 and L4 data to provide a richer match then use this richer match. For example: In the case of MPLS, L3 and L4 information may not initially be decoded from the frame as the ethernet type of the frame is an MPLS type and no information is known

[ovs-dev] [PATCH 07/16] Add support for dec_mpls_ttl action

2013-01-07 Thread Simon Horman
This adds support for the OpenFlow 1.1+ dec_mpls_ttl action. And also adds an NX dec_mpls_ttl action. The handling of the TTL modification is entirely handled in userspace. Reviewed-by: Isaku Yamahata Signed-off-by: Simon Horman --- v2.14 * No change v2.13 * No change v2.12 * Use eth_type_m

[ovs-dev] [PATCH 0/16 v2.14] Basic MPLS actions and matches

2013-01-07 Thread Simon Horman
Hi, This series implements basic MPLS actions and matches based on work by Ravi K, Leo Alterman and Yamahata-san. The main limitation of this implementation is that it only supports manipulating the outer-most MPLS label. Key differences between the v2.13 and v2.14: * Reshuffle patches moving ke

[ovs-dev] [PATCH 06/16] dpif-netdev: Inner And Outer Flows

2013-01-07 Thread Simon Horman
This is the user-space datapath component of this change Allow a flow to be visible in two forms, an outer flow and an inner flow. This may occur if the actions allow further decoding of a packet to provide a more fine-grained match. In this case the first-pass coarse-grained match will hit the ou

[ovs-dev] [PATCH 13/16] datapath: Inner And Outer Flows

2013-01-07 Thread Simon Horman
Allow a flow to be visible in two forms, an outer flow and an inner flow. This may occur if the actions allow further decoding of a packet to provide a more fine-grained match. In this case the first-pass coarse-grained match will hit the outer-flow and the second-pass fined-grained match will hit

Re: [ovs-dev] [PATCH 0/16 v2.13] Basic MPLS actions and matches

2013-01-07 Thread Ben Pfaff
On Jan 7, 2013 9:41 PM, "Simon Horman" wrote: > > On Fri, Jan 04, 2013 at 09:19:57AM -0800, Ben Pfaff wrote: > > Since Jesse is perpetually backlogged: if there are any parts of the > > series that can be usefully applied without changing the datapath, let > > me know, and I'll take care of it. >