Thread (63 messages) 63 messages, 7 authors, 2017-09-24

Re: [PATCH net-next 09/14] gtp: Allow configuring GTP interface as standalone

From: Tom Herbert <hidden>
Date: 2017-09-20 16:24:09

On Wed, Sep 20, 2017 at 9:07 AM, Andreas Schultz [off-list ref] wrote:

On 20/09/17 17:57, Tom Herbert wrote:
quoted
On Wed, Sep 20, 2017 at 8:27 AM, Andreas Schultz [off-list ref]
wrote:
quoted
On 19/09/17 02:38, Tom Herbert wrote:
quoted

Add new configuration of GTP interfaces that allow specifying a port to
listen on (as opposed to having to get sockets from a userspace control
plane). This allows GTP interfaces to be configured and the data path
tested without requiring a GTP-C daemon.


This would imply that you can have multiple independent GTP sockets on
the
same IP address.That is not permitted by the GTP specifications. 3GPP TS
29.281, section 4.3 states clearly that there is "only" one GTP entity
per
IP address.A PDP context is defined by the destination IP and the TEID.
The
destination port is not part of the identity of a PDP context.
We are in no way trying change GTP, if someone runs this in a real GTP
network then they need to abide by the specification. However, there
is nothing inconsistent and it breaks nothing if someone wishes to use
different port numbers in their own private network for testing or
development purposes. Every other UDP application that has assigned
port number allows configurable ports, I don't see that GTP is so
special that it should be an exception.

GTP isn't special, I just don't like to have testing only features in there
when the same goal can be reached without having to add extra stuff. Adding
code that is not going to be useful in real production setups (or in this
case would even break production setups when enabled accidentally) makes the
implementation more complex than it needs to be.
Well, you could make the same argument that allowing GTP to configured
as standalone interface is a problem since GTP is only allowed to be
with used with GTP-C. But, then we have something in the kernel that
the community is expected to support, but requires jumping through a
whole bunch of hoops just to run a simple netperf. The more that
patches and features look like other things in the kernel that are
already well established, the better the chances we can accept them
and support them. It's probably a natural consequence of any large
open source project, so sometimes it's worth the effort to add a few
lines of complexity to get the benefits of community contribution and
support.

Tom
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help