Re: Flows! Offload them.
From: Jiri Pirko <jiri@resnulli.us>
Date: 2015-02-26 11:39:46
Thu, Feb 26, 2015 at 12:22:52PM CET, sowmini.varadhan@oracle.com wrote:
On (02/26/15 08:42), Jiri Pirko wrote:quoted
6) implement "named sockets" (working name) and implement TC support for that -ingress qdisc attach, act_mirred target 7) allow tunnels (VXLAN, Geneve, GRE) to be created as named socketsCan you elaborate a bit on the above two?
Sure. If you look into net/openvswitch/vport-vxlan.c for example, there is a socket created by vxlan_sock_add. vxlan_rcv is called on rx and vxlan_xmit_skb to xmit. What I have on mind is to allow to create tunnels using "ip" but not as a device but rather just as a wrapper of these functions (and others alike). To identify the instance we name it (OVS has it identified and vport). After that, tc could allow to attach ingress qdisk not only to a device, but to this named socket as well. Similary with tc action mirred, it would be possible to forward not only to a device, but to this named socket as well. All should be very light.
FWIW I've been looking at the problem of RDS over TCP, which is an instance of layered sockets that tunnels the application payload in TCP. RDS over IB provides QoS support using the features available in IB- to supply an analog of that for RDS-TCP, you'd need to plug into tc's CBQ support, and also provide hooks for packet (.1p, dscp) marking. Perhaps there is some overlap to what you are thinking of in #6 and #7 above?
I'm not talking about QoS at all. See the description above. Jiri
--Sowmini