How to creat two epchelper for two pgw ?

283 views
Skip to first unread message

JhengDa

unread,
Aug 12, 2014, 6:03:09 AM8/12/14
to ns-3-...@googlegroups.com

I try to create two link   (including remote - pgw - enb )   and  a  ue  node

First , ue connect enb1  ,  and  connect to enb2  for a while 

I want to create two  epchelper  (epchelper1 for pgw1   , epchelper2 for pgw2)  

Ptr<LteHelper> lteHelper = CreateObject<LteHelper> ();
Ptr<PointToPointEpcHelper> epcHelper = CreateObject<PointToPointEpcHelper>();
lteHelper -> SetEpcHelper (epcHelper);

Ptr<LteHelper> lteHelper2 = CreateObject<LteHelper> ();
Ptr<PointToPointEpcHelper> epcHelper2 = CreateObject<PointToPointEpcHelper>();
lteHelper2 -> SetEpcHelper (epcHelper2);

but I got a error message  when I creat it 

msg="Ipv4AddressGeneratorImpl::Add(); Address Collision 7.0.0.1", file=../src/internet/model/ipv4-address-generator.cc,line=380


Tommaso Pecorella

unread,
Aug 13, 2014, 3:51:07 AM8/13/14
to ns-3-...@googlegroups.com
Hi,

quoting RFC 3849:

   The address architecture for IPv6 [1] does not specifically allocate
   an IPv6 address prefix for use for documentation purposes.
   Documentation material is currently using address prefixes drawn from
   address blocks already allocated or assigned to existing
   organizations or to well known ISPs, or drawn from the currently
   unallocated address pool.  Such use conflicts with existing or future
   allocations or assignments of IPv6 address space.

   The problems such conflicts may cause have already been encountered
   with IPv4 where literal use of documented examples in a production
   environment causes address and routing conflicts with existing
   services.  In making an explicit allocation of a documentation
   address prefix, it is intended that such operational problems may be
   avoided for IPv6.

The RFC goes on, reserving a /32 for documentation purposes. In other terms, the Internet community decided to BURN a little more than 7.923 * 10^28 (it's 79.23 billions of billions of billions addresses) to avoid mistakes like the one you did.

Each EpcHelper have to setup a (small) network, and have to use IP addresses for it. The Helper is using 7.0.0.x as a "default" network address... enough said.

T.

JhengDa

unread,
Aug 28, 2014, 11:21:39 PM8/28/14
to ns-3-...@googlegroups.com
Hi,Tommaso

sorry , reply late  and thank for your  suggest

but How can I  not use default ipv4 address(7.0.0.1)   

thank you 



Tommaso Pecorella於 2014年8月13日星期三UTC+8下午3時51分07秒寫道:

Tommaso Pecorella

unread,
Aug 29, 2014, 2:05:49 PM8/29/14
to ns-3-...@googlegroups.com
Hi,

it seems that the PointToPointEpcHelper has those IP addresses "hardcoded" in the code. Change them (e.g., by using an attribute) or contact the module maintainers to have this limitation removed.

Cheers,

T.

Nicola Baldo

unread,
Sep 1, 2014, 9:31:43 AM9/1/14
to ns-3-...@googlegroups.com


On Friday, August 29, 2014 8:05:49 PM UTC+2, Tommaso Pecorella wrote:
or contact the module maintainers to have this limitation removed.

better send a patch ;-)

JhengDa

unread,
Sep 11, 2014, 4:08:11 AM9/11/14
to ns-3-...@googlegroups.com
Hi

I had sloved the problem (by chang  PointToPointEpcHelper.h and  PointToPointEpcHelper.cc) .

Now , I want to  let  ue connect to enb1 and  connect to  enb2  for a while 

first I can attach enb1   // lteHelper->Attach (ueLteDevs1, enbLteDevs1.Get(0));

but if I want to attach enb 2  , I got error message   //lteHelper2->Attach (ueLteDevs2, enbLteDevs2.Get(0));

I don't  know why   ,  thank you 



  





Tommaso Pecorella於 2014年8月30日星期六UTC+8上午2時05分49秒寫道:
write.cc

Nicola Baldo

unread,
Sep 16, 2014, 4:29:24 AM9/16/14
to ns-3-...@googlegroups.com
Are you familiar with how LTE works? An UE is not supposed to switch from one eNB to another by re-doing the attach procedure. Use handover instead. See the docs for how.

JhengDa

unread,
Sep 16, 2014, 1:49:56 PM9/16/14
to ns-3-...@googlegroups.com

Hi,

Yes , I know UE change connect eNB must by x2  to let eNB to handover 

but I  mean  UE  can connect  to  eNB1 when simulate starting  (no handover)  that is sucessful  

if  I want to  ue  connect  to eNB2  when simulate starting (no handover ) , I got error message   

my code have any problem?   I can't find it  :(

--------------------------------------------
by the way ,  the topology ( server1 - pgw1 -eNB1    and  server2-pgw2-eNB2 )

Ue connect attach eNB1  and handover to eNB2 for a while  , is it possible to handover on different eNBdevice ?

thanks a lot for your reply
 

Nicola Baldo於 2014年9月16日星期二UTC+8下午4時29分24秒寫道:

Nicola Baldo

unread,
Sep 17, 2014, 7:44:17 AM9/17/14
to ns-3-...@googlegroups.com


On Tuesday, September 16, 2014 7:49:56 PM UTC+2, JhengDa wrote:

if  I want to  ue  connect  to eNB2  when simulate starting (no handover ) , I got error message   

what error?
 

by the way ,  the topology ( server1 - pgw1 -eNB1    and  server2-pgw2-eNB2 )

Ue connect attach eNB1  and handover to eNB2 for a while  , is it possible to handover on different eNBdevice ?

if the eNBs are on separate EPCs, handover is not expected to work.

JhengDa

unread,
Oct 1, 2014, 11:36:29 PM10/1/14
to ns-3-...@googlegroups.com
thanks for your reply :)

the error I had slove the problem . 

and if  my topology is  


                ----------pgw 1 -------bs1               O ue
                |                                                 ↓
server ----|                                                 ↓     
                |                                                 ↓
                ----------pgw2   -------bs2              O 


is it possible the  ue  will handover  if  pgw1 and pgw2 on same domain  

or  the bs handover must  on  a  pgw ?  


thank you  

Nicola Baldo於 2014年9月17日星期三UTC+8下午7時44分17秒寫道:

Tommaso Pecorella

unread,
Oct 2, 2014, 1:45:58 AM10/2/14
to ns-3-...@googlegroups.com
This is not an handover scenario. This is a roaming scenario.

T.

JhengDa

unread,
Oct 2, 2014, 2:15:03 AM10/2/14
to ns-3-...@googlegroups.com
sorry  ,  its my fault  and  thank you 

And I'm not use ns3 for a long time 

May I ask you  if I want to do this 

How can I  reconnect  to Enb2  from Enb1 ?  


Tommaso Pecorella於 2014年10月2日星期四UTC+8下午1時45分58秒寫道:

JhengDa

unread,
Oct 3, 2014, 3:37:05 AM10/3/14
to ns-3-...@googlegroups.com
LTE roaming scenario can realize in ns3? 



Tommaso Pecorella於 2014年10月2日星期四UTC+8下午1時45分58秒寫道:

Nicola Baldo

unread,
Oct 13, 2014, 9:24:43 AM10/13/14
to ns-3-...@googlegroups.com
LTE roaming scenarios can't currently be simulated in ns-3.

Gooner 내려왔다

unread,
Jun 21, 2016, 10:02:29 PM6/21/16
to ns-3-users
Hi nocola,
  I am also facing the same issue.
I have done below operation to send IP address as an attribute.

AddAttribute ("ueAddress",
                   "The ueAddress",
                   Ipv4Address("7.0.0.0"),
                   MakeIpv4AddressAccessor (&PointToPointEpcHelper::
SetUEIP,
                                           &PointToPointEpcHelper::GetUEIP),
                   MakeIpv4AddressChecker ())

But its throwing an error
"no matching function for call to ‘ns3::TypeId::AddAttribute(const char [10], const char [14], ns3::Ipv4Address, ns3::Ptr<const ns3::AttributeAccessor>, ns3::Ptr<const ns3::AttributeChecker>)’
                    MakeIpv4AddressChecker ())
"
But I tried with integer, double etc. Those are fine. If there is problem with IpAddress attribute in this format, how can i proceed. ?

As per the NS3 page
https://www.nsnam.org/doxygen/group__attribute___ipv4_address.html
it says that "
Ptr< const AttributeChecker > ns3::MakeIpv4AddressChecker ( void 
)
"

Please help

Tommaso Pecorella

unread,
Jun 22, 2016, 1:08:30 AM6/22/16
to ns-3-users
... and do NOT ask the same question twice in two different threads (one of them being 2 years old).

T.
Reply all
Reply to author
Forward
0 new messages