Hi , Posting question related to capability to implement user plane (GTP tunnel) for S1-U and Iu-PS interface between S-GW & eNB and SGSN & RNC respectively via osmocom kernel GTP-U module. At present it seems if TE-ID is not valid packet is dropped in kernel GTP-U module. So in order to use this for S1-U/Iu-PS interface it is required to add support for following use-case:
* Down link packet arrival in S-GW /SGSN for UE which is in idle mode - Buffer the packet and trigger paging to move the UE to connected.
a. When UE moves to idle mode - S1-U or IuPS bearer is released. In this case IP address and TE-ID of eNB/RNC becomes invalid.
b. DL Packet is received for the idle mode UE in S-GW/SGSN - In this case , kernel GTP-U module should deliver packet to user-space application (SGW/osmoSGSN) so that these packets can be buffered in user space and paging can be initiated.
Question - Is there any plan to support above in near-future in osmocom kernel GTP-U module or larger question would be to plan to enable usage of kernel GTP-U module in SGSN and SGW towards RAN ?
Thanks,
Anoop
Hi Anoop,
On Sat, Feb 18, 2017 at 12:03:37AM +0000, Anoop Singh Tomar wrote:
Posting question related to capability to implement user plane (GTP tunnel) for S1-U and Iu-PS interface between S-GW & eNB and SGSN & RNC respectively via osmocom kernel GTP-U module.
The current kernel GTP-U module has been designed explicitly for the use case of a GGSN/P-GW. This was what the original requirement was, and where Pablo and I received some funding from a customer to implement it.
The requirements for a SGSN/S-GW are completely different, and I don't think the current module is any good match for this. Please see the discussion starting from http://marc.info/?l=linux-netdev&m=148611438811696&w=2 for the rationale about this, specifically my post at http://marc.info/?l=linux-netdev&m=148638986910316&w=2
If you think otherwise, please let me know. I'd be happy to undeerstand why.
At present it seems if TE-ID is not valid packet is dropped in kernel GTP-U module.
This is a bug/mis-feature that has been fixed already and the patch is currently in net-next, waiting to be merged into the next linux kernel merge window: https://git.kernel.org/cgit/linux/kernel/git/davem/net-next.git/commit/drive...
Question - Is there any plan to support above in near-future in osmocom kernel GTP-U module or larger question would be to plan to enable usage of kernel GTP-U module in SGSN and SGW towards RAN ?
There are no such plans, at least not from Pablo and my side. I don't know about Andreas, but I think he is also primarily focussing on various (more complex) P-GW use cases, rather than S-GW. The module was developed to fulfill certain requirements under a customer contract. Neither Pablo or I currently have any customers who have above requirement, so there's no related agenda.
I would love to work on the kernel GTP code, but I cannot afford to do so in my limited spare time (which is already occupied by way too many projects getting too little attention), sorry.
In general, I don't think the current GTP "tunnel endpoint" module fits the S-GW/SGSN use case at all (see my linked post above). The S-GW/SGSN is not a node visible in Layer3 of the user-IP payload, it must not terminate the user IP tunnel. A completely different architecture should be used for the SGSN/S-GW use case, where it is all about forwarding encapsulated packets between MME and P-GW without decapsulating the inner (user) IP layer.
Regards, Harald
Hi Anoop,
----- On Feb 18, 2017, at 1:03 AM, Anoop Singh Tomar anooptomar@fb.com wrote:
Hi ,
Posting question related to capability to implement user plane (GTP tunnel) for S1-U and Iu-PS interface between S-GW & eNB and SGSN & RNC respectively via osmocom kernel GTP-U module.
At present it seems if TE-ID is not valid packet is dropped in kernel GTP-U module. So in order to use this for S1-U/Iu-PS interface it is required to add support for following use-case:
· Down link packet arrival in S-GW /SGSN for UE which is in idle mode – Buffer the packet and trigger paging to move the UE to connected.
a. When UE moves to idle mode – S1-U or IuPS bearer is released. In this case IP address and TE-ID of eNB/RNC becomes invalid.
b. DL Packet is received for the idle mode UE in S-GW/SGSN - In this case , kernel GTP-U module should deliver packet to user-space application (SGW/osmoSGSN) so that these packets can be buffered in user space and paging can be initiated.
Question – Is there any plan to support above in near-future in osmocom kernel GTP-U module or larger question would be to plan to enable usage of kernel GTP-U module in SGSN and SGW towards RAN ?
We (Travelping) have some ideas about implementing a S-GW based on the current ergw code [1]. This would also involve implementing kernel side support.
The current idea for extending the kernel part is to change the PDP context logic from a 'GTP-U to network device' reeation to a 'GTP-U to something' relation. The 'something' then would be the existing network device, another GTP-U socket (including TEID's), a L2TP tunnel, a IPsec session, .... an so on. My current understanding is that the LWT infrastructure should be suitable for that.
This implementation would support the S1-U use case. For Iu-PS, a user space only implementation would IMHO be more suitable. Anyhow, the current kernel implementation is passing all packets that it can't handle (has no PDP context for them) onto the user space process.
But all that are only halve backed ideas, nothing concrete, yet.
Regards Andreas
[1]: https://github.com/travelping/ergw
Anoop
osmocom-net-gprs@lists.osmocom.org