Require support for provider:network_type gtp for supporting mobile netwok

Registered by Prakash Ramchandran

The GRE tunneling is good start, but the 32 bit Tunnel ID (TEID) used for GPRS Tunneling Protocol (GTP) used in mobile network is entirely different. Refer to GPRS Tunneling Protocol wiki in specification URL.
GTP network - A virtual network realized as network packets encapsulated using GTP. GTP networks are also referred to as "GTP tunnels". GTP tunnel packets are routed by the host's IP routing table, so GTP networks are not associated by OpenStack Networking with specific physical networks.
They are similar to GRE Tunnels in terms of using 32 bit Tunnel ID, but their realization requires implementation of GTPv1-C for GPRS/UMTS and GTPv2-C for LTE control plane signalling and GTP-U for all types of cellular data plane traffic.

Idea here is to take ovsplugin code under ... /quantum/plugins/openvswitch and modify the codes under constatnts.py and add the new netwok_type gtp.

# Values for network_type
TYPE_FLAT = 'flat'
TYPE_VLAN = 'vlan'
TYPE_GRE = 'gre'
TYPE_GTP='gtp' # this we will addto constants.py under common... /quantum-2013.2.b1/quantum/plugins/openvswitch/common
TYPE_LOCAL = 'local'
TYPE_NONE = 'none'

Once that is done then the issue comes to what will plugin code and agent code to change to implement the following use case.

......................................... ....................................................
| KVM1 | | KVM2 |
I VM11 VM12 ... | | VM21 VM22 ... |
|........................................| |....................................................|

Use case 1:
eg. VM11 and VM12 on same KVM1 have ip of p.q.r.s and p.q.r.t and the TEID field whihh gre uses can be used in case the network_type is 'gtp' instead of 'gre'

Use case 2:
e.g. VM11 and VM22 are say the endpoints is question with ip address
p.q.r.s and w.x.y.z and the OVS plugin and agents are smart enough to go across hypervisors assuming each hypervisor (KVM?) has the corresponding ovsplugin installed and configured with support for gtp-u tunnels.

What should KVM1 & KVM2 support?
I am assuming that iptables configuration will take care of UDP ports assignments at KVM level for required bindings for GTP-U. If i requires any other changes in kernel or VM will need further analysis and change in design. Since the calls between PLUGINS and AGENT is RPC based on Topic Exchange, the cross module interaction will be addressed to changes to other modules to support 'gtp' very much like 'gre'

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Prakash Ramchandran
Direction:
Needs approval
Assignee:
Prakash Ramchandran
Definition:
Obsolete
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Armando Migliaccio

Related branches

Sprints

Whiteboard

Only the openvswitch plugin currently supports GRE networks, provided that the host's Linux kernel supports the required Open vSwitch features. The proposal here is to modify openvswitch plugin to support a new provider:network_type called gtp (very much like gre) so that the new mobile network support can be added to the plugin-agents for realizing gtp tunnelling support.

yong sheng gong: can u give us an arch about how to use openstack (nova, quantum) in this env?

Currently the plan is to limit this to GTP-U or data-plane implementation only. Having said that the idea is to simply allow few simple commands like create, update, delete , list / show, transport the packets through gtp-u tunnels.

The likely attributes a gtp-u tunnel will have are:
  - source IP address
  - source GTPu tunnel id
  - destination IP address
  - destination GTPu tunnel id

Since this will be part of Havana release we would add this to quantum network APIs and Nova compute will need corresponding additions to support the API calls as part of Network calls.
This are very early comments. Still question remains if we do part of plumbing at user level lib and part at kernel level and will have to check into Linux versions currently used for support on library fronts for firewall.

If you have any suggestions please feel free to participate in this Blueprint to support what makes sense for your organization and this is a community efforts, so most welcome to join the debate and discussions to get the blueprint right.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.