Problem while sending packets through LTE to the PGW without using applications --ns3.19

403 views
Skip to first unread message

Mark Kynigos

unread,
Apr 19, 2015, 11:12:43 AM4/19/15
to ns-3-...@googlegroups.com
Hello,
I am trying to get packets from a ue to the pgw, in order to pass signalling messages used for multiple-ip-flows over lte and wifi. These signalling messages are passed in the form of a packet header, but i just can't get them to flow from the ue through lte. 

After digging about a bit, I managed to figure out that the reason for this is that the packet does not have an ipv4 header at it's outermost layer, so the epc-tft-classifier (called by the EpcUeNas::Send function) does not classify the packet which is then dropped. Also, i managed to understand that the tcp or udp socket is the one responsible for adding the ipv4 header (and i suppose the udp header as well), and the socket is created in the application (surprise surprise).

 So, would it be possible and correct to just add a udp socket to the method that is trying to send the signalling message (located inside my custom net device)? Would this solve my problem? How would I go about adding a socket to a method inside a type of net-device? If this is not correct or even possible, how would you advise that I solve my problem?

thanks in advance, 
Mark.

Tommaso Pecorella

unread,
Apr 19, 2015, 2:02:31 PM4/19/15
to ns-3-...@googlegroups.com
Bi,

I'd strongly suggest to think again to your system. In particular the headers and packet format.
It is true that LTE can't forward non-IP packets. However, I wonder how a non-IP packet could be exchanged from a node to another. Perhaps the UE could send it to the PGW, as there's only one default PGW for each UE. However, the opposite isn't true !
As a consequence, the fact that your packets didn't had an IP header means that there's a problem in your design. Go back to the starting point.

About where and how the IP layer is added, it's added by the IP layer, not by UDP. You use (as an example) an Ipv4RawSocket to have "just" the IP header.
However (and again, your design may be flawed), you'll need a socket to receive the data. Using a RAW socket isn't that simple.

As a consequence, I see mainly design issues in your approach. Fix the design, then the development will follow.

About placing a UdpSocket in a NetDevice... I'd definitely avoid it, it would create a circular dependency between modules. It could be done, but it's not something that easy.

Cheers,

T.

Mark Kynigos

unread,
Apr 19, 2015, 6:29:23 PM4/19/15
to ns-3-...@googlegroups.com
Hello, 
thanks for your reply! I do realize that it is necessary to send IP packets over the net (don't know what good ns3 would do me without IP hehe). About the IP layer, I imagined that something like this would be the case, but I could not find the place the header was added. Therefore, I could safely assume that the IP header was added somewhere between the application and the net-device probably a socket, which lead to the misunderstanding.
The approach I am going to attempt now is I will add an application (not unlike the udp client application) on my ue, which will add a "dsmip header" (my signalling method) to a packet, sending it down a udp socket with the pgw as destination. In order for the pgw to be able to read this data though, would I have to install a server application to read this data off the packet header? Is it enough to just tweak the receiving function (and sending, for the acks) in order to handle this data? What would your approach be in this case?
Thanks again, 
Mark.

--
You received this message because you are subscribed to a topic in the Google Groups "ns-3-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ns-3-users/yNDHksFBOWw/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ns-3-users+...@googlegroups.com.
To post to this group, send email to ns-3-...@googlegroups.com.
Visit this group at http://groups.google.com/group/ns-3-users.
For more options, visit https://groups.google.com/d/optout.

Konstantinos

unread,
Apr 19, 2015, 6:37:51 PM4/19/15
to ns-3-...@googlegroups.com
Hi Mark,

AFAIK, LTE module has the means to carry signalling from UE to eNB through RRC. I would recommend to study the implementation of that part of LTE module, in order to carry your signalling information (either by extending it for your packets, or replicate its functionality).

K.
To unsubscribe from this group and all its topics, send an email to ns-3-users+unsubscribe@googlegroups.com.

Mark Kynigos

unread,
Apr 20, 2015, 4:51:08 AM4/20/15
to ns-3-...@googlegroups.com
Hi,
thanks for your reply Konstantinos! I am aware of RRC's capabilities, but my main issue is that I want signalling to be carried to the EPC's PGW from a UE, not to an eNB. The reason for this is that I have extended the PGW's connection capacity to include a series of WiFi access points (in a way similar to the connection of eNBs to the PGW), and therefore the PGW needs to be given a signalling reception capability. In that perspective, I presumed that my custom signalling method needs to be foreign to the RRC signalling. I might have made a design error in deciding thus, but I do not think so. Do you think that the PGW can receive signals in the form of a packet header, without being loaded with an "application server" of some sorts? I was thinking along the lines of a client on the side of the UE, that sends packets with the PGW as a destination. These packets would hold my signalling header to be transferred to the PGW, in order for it to update some custom routing tables.Would that work without causing more problems?
Regards, 
Mark.

K.
To unsubscribe from this group and all its topics, send an email to ns-3-users+...@googlegroups.com.

To post to this group, send email to ns-3-...@googlegroups.com.
Visit this group at http://groups.google.com/group/ns-3-users.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to a topic in the Google Groups "ns-3-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ns-3-users/yNDHksFBOWw/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ns-3-users+...@googlegroups.com.

Tommaso Pecorella

unread,
Apr 20, 2015, 5:00:13 AM4/20/15
to ns-3-...@googlegroups.com
DSMIP is a standard. You shouldn't try to "invent" how it works. Implement the standard. Or modify the standard and implement your own modifications. However, DSMIP *is* a standard, and the standard is quite clear on how to exchange DSMIP messages between the network entities.

T.

Mark Kynigos

unread,
Apr 20, 2015, 7:33:41 AM4/20/15
to ns-3-...@googlegroups.com
Hi, 
implementing this standard, based on ns3's considerations, is exactly what I am attempting to do, which is why am using packet headers to transmit information such as binding updates and not, for instance, packet tags. The question I am asking however, has more to do with how LTE/EPC works in ns3 (I think). In any case, I thank you gurus for your assistance in this matter!
Regards, 
Mark.
Reply all
Reply to author
Forward
0 new messages