New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Question about GTP support #127
Comments
Hi, GTP-U is supported with extended ryu. Thanks |
Hi, ryu-lagopus-ext/ryu/app/tunnel_gre.py and tunnel_vxlan.py are sample applications. Thanks |
@hibitomo @ichi1229 I cannot see the GTP-U encapsulation and decapsulation code (GRE implementation is in the extended RYU but not GTP). Is it the case that you have not pushed it there yet? |
GTP-U encap/decap testcases are ryu/tests/switch/of13/tunnel/08_ENCAP_GTPU.json or 09_DECAP_GTPU.json (maybe they are not be useful...) Now ryu/app/tunnel_gtpu.py is pushed. This is same content as above testcases. |
@ichi1229 Thanks for pushing the GTP implementation. I am going to try it today. One more question: is the current implementation support GTPv1, GTPV2 or both of them? I am interested in leveraging the GTPv2 capability of Lagopus if possible. |
Current implemention support only GTPv2. |
Thanks for the clarification. When I send a single GTP packet through the switch, it stops silently without sending the packet to the controller. At this step, I get the following: |
I often get the message when I have syntax error on DSL config file... Then Lagopus is not running. In rawsock-mode, debug message is nothing. If it has anything errors, above command will be terminated immediately. |
It successfully runs before sending GTP packet and stops right after the first packet arrives at the ingress port. The following is the output of syslog: Sep 22 00:49:02 vagrant-ubuntu-trusty-64 lagopus: [Fri Sep 22 00:49:02 UTC 2017][INFO ][2764:0x00007f05ceccb740:lagopus]:./bridge_cmd.c:734:bri_bridge_start: start bridge. name = :bridge01. |
Thank you for the log report ! And please let me correct what the GTP version is supported by current Lagopus and extended-ryu. Thanks |
Thanks! I will wait to hear back from you.
I am trying to connect Lagopus to an actual base station. Previously, I
thought it was supporting GTPUv2 but after testing it today, I noticed it
only supports GTPUv1 so I am happy with its compatibility with Lagopus.
Best Regards,
---Mehrdad
…On Fri, Sep 22, 2017 at 1:25 PM, ichi1229 ***@***.***> wrote:
Thank you for the log report !
We are investigating this issue, so please kindly wait until we have
checked.
And please let me correct what the GTP version is supported by current
Lagopus and extended-ryu.
It's not GTPv2 but GTPv1.
Thanks
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#127 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ACicEIVz-G9tkaCKxvM7JP0crh-6RkgVks5sk-2kgaJpZM4PVQaK>
.
--
-----
Mehrdad Moradi
Research Assistant
University of Michigan- Ann Arbor
|
@ichi1229 I am wondering if you had a chance to investigate the issue with GTP-enabled lagopus |
@imehrdad2012 Sorry for late reply. We fixed this issue by the PullReq #129 "Fix the return value of rawsock OS_M_ADJ". Thanks! |
@ichi1229 Thanks for fixing the issue. Actually, I was able to run the basic code and saw the encapsulation and decapsulation of the GTP packets. However, I faced two issues that would be great if you can comment on them: 2- When decapsulating packets, I comment out the following two lines in the ryu source code as I do not know the source and destination mac addresses in advance. When I comment them out, I see that the switch sets the source and destination mac addresses to somehow random values. Is this an expected behaviour? Thanks parser.OFPActionSetField(eth_src='cc:cc:cc:cc:cc:cc'), 3- The third question is that do you have any idea on the performance of the switch when DPDK enabled in the VM environment VS the simple raw socket version? |
1- It's OpenFlow match field prerequisite. 2- Yes, it is expected action in Lagopus encapulation function. 3- Of course, dpdk-mode has better performance than rawsock-mode. $ ./configure
$ make gcc-full-opt Thanks. |
@ichi1229 Thanks a lot for the comment. The following is the output when I make the following change to the RYU GTP application (note the issue does not appear when I only use the in_port field): TCPdump on the ingress interface: TCPdump at the egress interface: Lagosh> show bridge |
@ichi1229 @hibitomo Do you guys have any comment on the above issue? Thanks! |
It looks like there are two possible causes. 1- Lagopus supports only GTPv1-U, and GTPv1 is used only on UDP. 2- You must specify the packet type for packet classification. match = parser.OFPMatch(in_port=2, eth_type=2048, ip_proto=17, udp_dst=2125) Because Lagopus do not support the validation of Decapsulation and Encapsulation. And you can use OFPInstructionGoToTable() if it is difficult to set both of packet classification rule and your flow rule to single table. Thanks. |
For the reference of others: |
Sorry, the following match fields in the decapsulation testcase was wrong. match = parser.OFPMatch(in_port=2, eth_type=2048, ip_proto=17, udp_dst=2125) UDP destination port for GTPv1-U is 2152. So match fields should be the following... match = parser.OFPMatch(in_port=2, eth_type=2048, ip_proto=17, udp_dst=2152) We fixed the testcase and sample applications in extended-ryu. |
@ichi1229 |
@ichi1229 @hibitomo is it possible to further improve the performance of raw socket Lagopus? (e.g., by modifying the queue size for ports and buffers? or increasing number of threads?) Currently, I am not getting beyond 80Mbps. Any pointer or suggested configuration is appreciated. Thanks |
@imehrdad2012 is there a particular reason, why you used the raw version instead of DPDK? I would like to try this switch out, but first I want to make it sure, it supports GTP properly and is fast. BTW since kernel version 4.7, GTP tunneling is supported, so for GTP encap/decap you could use a linux box in-front of this switch. Even with the kernel support, I believe DPDK will be however faster. |
Is possible to perform snat when decapsulating?
But lagopus stops right after the arrival of a packet. Any suggestions? |
Hello,
The README says that the code supports GTP. I would like to be able to add and remove GTP headers on traffic. Are these operations supported? Thanks!
The text was updated successfully, but these errors were encountered: