[ovs-dev] [PATCH v1 0/2] Add GTP vport based on upstream datapath
Jan Scheurich
jan.scheurich at ericsson.com
Mon Jul 17 22:39:29 UTC 2017
Yi, so what you are saying is that for the third use case (GTP-u processing w/o terminating UDP transport tunnel) you have patched OVS to parse GTP-u as L7 protocol and implemented corresponding match fields?
There is no Ethertype defined for GTP-u as it is only specified for UDP transport. Supporting GTP-u as new packet type in OVS would require to implement support for new packet type namespace OFPHTN_UDP_TCP_PORT (code point 3). So it's a bit more work than for a new packet type in namespace OFPHTN_ETHERTYPE, but certainly doable.
The same GTP-u fields could be used as L7 fields (flow prerequisites udp, tp_dst_port= 2152) and directly for new packet type (OFPHTN_UDP_TCP_PORT,2125). Only in the latter case a decap() action could be used to remove the GTP-u encapsulation. In the former case, processing would be limited to matching and GTP-u header modification.
BR, Jan
> -----Original Message-----
> From: Yang, Yi Y [mailto:yi.y.yang at intel.com]
> Sent: Monday, 17 July, 2017 11:18
> To: Jan Scheurich <jan.scheurich at ericsson.com>; Amar Padmanabhan <amarpadmanabhan at fb.com>; Joe Stringer <joe at ovn.org>;
> Wieger IJntema <wieger.ijntema.tno at gmail.com>
> Cc: ovs dev <dev at openvswitch.org>; Pablo Neira Ayuso <pablo at netfilter.org>; Harald Welte <laforge at gnumonks.org>
> Subject: RE: [ovs-dev] [PATCH v1 0/2] Add GTP vport based on upstream datapath
>
> Jan, for the use case you mentioned, outer IP destination of the GPT-u packet must be IP address of generic UDP tunnel port, but in the
> actual use case (especially for ETSI MEC use case), the destination IP of the GTP-u packet isn't ovs host node's IP, so this kind of use case
> needn't tunnel port, we internally have implemented GTP-u header parsing and match as application layer data.
>
> But I do agree it is a good direction to implement tunnel port and tunnel encap & decap by using generic UDP tunnel port and generic
> encap & decap action.
>
> -----Original Message-----
> From: ovs-dev-bounces at openvswitch.org [mailto:ovs-dev-bounces at openvswitch.org] On Behalf Of Jan Scheurich
> Sent: Monday, July 17, 2017 4:24 PM
> To: Amar Padmanabhan <amarpadmanabhan at fb.com>; Joe Stringer <joe at ovn.org>; Wieger IJntema <wieger.ijntema.tno at gmail.com>
> Cc: ovs dev <dev at openvswitch.org>; Pablo Neira Ayuso <pablo at netfilter.org>; Harald Welte <laforge at gnumonks.org>
> Subject: Re: [ovs-dev] [PATCH v1 0/2] Add GTP vport based on upstream datapath
>
> These are indeed two different use case. The pure termination of the GTP-u tunnel can be done by adding support for a GTP-u tunnel
> vport, which should be straightforward now that we have support for L3 tunneling fully upstreamed in in OVS and based on the GTP tunnel
> support in the Linux kernel.
>
> For more flexible use cases that match on GTP-u header fields and only conditionally decapsulate packets, we would like to have support
> for adding/removing the GTP-u header in the OpenFlow pipeline. This use case will be shortly be possible to implement based on the
> packet type-aware pipeline (PTAP) and generic encap/decap (EXT-382) infrastructure that we are currently upstreaming:
> PTAP: commit 3d4b2e6eb74 and following
> EXT-382: https://mail.openvswitch.org/pipermail/ovs-dev/2017-July/335642.html
>
> For such use cases three things will have to be added on top:
> 1. A generic UDP tunnel vport (as already supported by the Linux kernel, I understand) to terminate the UDP transport tunnel and deliver a
> GTP-u packet to the PTAP OpenFlow pipeline. (There are also other interesting use cases for such a tunnel vport, e.g. MPLS over UDP.) 2.
> Support for GTP-u match fields in ofproto and datapaths 3. Support for generic encap and decap actions for the GTP-u packet type.
>
> The current work on support for NSH tunnels can be seen as an example for items 2. and 3.
> https://mail.openvswitch.org/pipermail/ovs-dev/2017-July/334872.html
>
> We would be very happy to see the PTAP and encap/decap infrastructure be applied to additional use cases.
>
> I currently don't see a possibility to match on GTP-u headers in OVS without first terminating the UDP transport tunnel.
>
> BR, Jan
>
> > -----Original Message-----
> > From: ovs-dev-bounces at openvswitch.org
> > [mailto:ovs-dev-bounces at openvswitch.org] On Behalf Of Amar Padmanabhan
> > Sent: Friday, 14 July, 2017 19:23
> > To: Joe Stringer <joe at ovn.org>; Wieger IJntema
> > <wieger.ijntema.tno at gmail.com>
> > Cc: ovs dev <dev at openvswitch.org>; Harald Welte
> > <laforge at gnumonks.org>; Pablo Neira Ayuso <pablo at netfilter.org>
> > Subject: Re: [ovs-dev] [PATCH v1 0/2] Add GTP vport based on upstream
> > datapath
> >
> > Yeah, we are looking at tunnel termination in OVS, i.e. GGSN or PGW. I
> > think what you mention Weiger is about an on-path device that also does some classification like some of the 5G proposals. I think Yi is
> also looking at it but that is not directly related to this patch set.
> > - Amar
> >
> > On 7/14/17, 10:01 AM, "Joe Stringer" <joe at ovn.org> wrote:
> >
> > On 14 July 2017 at 04:53, Wieger IJntema <wieger.ijntema.tno at gmail.com> wrote:
> > >> ovs-vsctl add-port br0 gtp-vport -- set interface gtp-vport \
> > >> ofport_request=2 type=gtp option:remote_ip=flow options:key=flow
> > >>
> > >> ovs-ofctl add-flow br0
> > >> "in_port=2,tun_src=192.168.60.141,tun_id=123, \
> > >> actions=set_field:02:00:00:00:00:00->eth_src, \
> > >> set_field:ff:ff:ff:ff:ff:ff->eth_dst,LOCAL"
> > >
> > >
> > > I just want to be sure. But this implicates that the incomming packet is
> > > already decapusulated by the kernel and it has attached metadata like the
> > > tunnel_id etc.
> > > a nicer solution would be that you can already match on tunnel_id before it
> > > is getting encapsulated. Then you can chose later if it needa decapsulation
> > > or just forward the packet.
> > > I'm not sure if it is a possibility?
> >
> > I wonder if we're actually discussing two different use cases? I think
> > that Jiannan & co are interested in GGSN functionality, whereas if my
> > understanding serves me right what you're proposing sounds more like
> > SGSN functionality. This approach is specifically for the edge of the
> > GTP-tunnelled network so it's always wanting to perform encap/decap.
> > For this particular use case, the proposed approach has a couple of
> > nice attributes. Firstly, the tunneling follows the same model as all
> > of the existing tunneling code so it fits quite well without needing
> > to solve new problems for a new tunnel protocol type. Secondly, the
> > kernel can deal with filtering GTP-C traffic out of the stream to
> > forward to the appropriate GTP daemon, which means that OVS doesn't
> > need to be taught how to understand that traffic or forward it to
> > another program.
> >
> >
> > _______________________________________________
> > dev mailing list
> > dev at openvswitch.org
> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
More information about the dev
mailing list