mobile - Omnet++/Inet: 2 lisp routers keep on boucing each other messages without being forwarded -


in omnet++/inet scenario have couple of lisp routers not able communicate. mean maprequest messages sent lisp router1 lisp router2 not forwarded central network expected, router2 sends message router1 , following message error generated

setting source ip=192.168.0.7 info(lisprouter4): srcaddress=192.168.0.7, dstaddress=192.168.0.254 info: source ip=192.168.0.7 address not in eid space. destination ip=192.168.0.254 address not in eid space. handing on packet regular ipv4-routing output interface ppp0, next-hop address: <unspec> ** event #26  t=0  multihomingnetwork.lisprouter1.networklayer.arp (arp,     id=109), on `lispmapregister-#1' (ipdatagram, id=263) packet (ipdatagram)lispmapregister-#1 arrived higher layer, output   interface ppp0 not broadcast, skipping arp ** event #27  t=0  multihomingnetwork.lisprouter2.networklayer.arp (arp,  id=185), on `lispmapregister-#2' (ipdatagram, id=264) packet (ipdatagram)lispmapregister-#2 arrived higher layer, output interface ppp0 not broadcast, skipping arp ** event #28  t=0  multihomingnetwork.lisprouter3.networklayer.arp (arp, id=233), on `lispmapregister-#3' (ipdatagram, id=265) packet (ipdatagram)lispmapregister-#3 arrived higher layer, output  interface ppp0 not broadcast, skipping arp ** event #29  t=0  multihomingnetwork.lisprouter4.networklayer.arp (arp,   id=307), on `lispmapregister-#4' (ipdatagram, id=266) packet (ipdatagram)lispmapregister-#4 arrived higher layer, output  interface ppp0 not broadcast, skipping arp 

i not understand why occurs because in system have couple of lisp routers , work expected. there must error in .irt files think. have written .irt files in specular way compared working routers, changing ip address. don't know means "interface ppp0 not broadcast"... here files of added routers:

pitr2.irt

ifconfig:  # interface 0 router name: ppp0  inet_addr: 192.168.0.6    mtu: 1500   metric: 1 name: ppp1  inet_addr: 192.168.0.6    mtu: 1500   metric: 1  ifconfigend.  route:  192.168.0.4    0.0.0.0       255.255.255.255 h 0 ppp0 192.168.0.7    0.0.0.0       255.255.255.255 h 0 ppp1 192.168.0.254  0.0.0.0       255.255.255.255 h 0 ppp0  routeend. 

lisprouter4.irt

ifconfig:  # interface 0 router name: ppp0  inet_addr: 192.168.0.7    mtu: 1500   metric: 1 name: ppp1  inet_addr: 192.168.0.7    mtu: 1500   metric: 1 name: eth0  inet_addr: 132.187.7.1  mask: 255.255.255.0  mtu: 1500   metric: 1  ifconfigend.  route:  192.168.0.0    0.0.0.0      255.255.255.0 h 0 ppp0 132.187.7.0    0.0.0.0      255.255.255.0 h 0 eth0  routeend. 

and these links in .ned file:

lisprouter4: lisprouter {         parameters:             routingfile = "lisprouter4.irt";             @display("p=640,322");  }  pitr2: lisprouter {         parameters:             mapserveraddress = "mapserver";             routingfile = "pitr2.irt";             @display("p=442,314;is=n"); }  ... pitr2.pppg++ <--> pplink <--> lisprouter4.pppg++; 

do have idea? thanks

according log, router lisprouter4 sends datagram destination address 192.168.0.254. router pitr2 receives datagram, check of own addresses not equal destination address, therefore looks own routing table , found following entry:

192.168.0.254  0.0.0.0       255.255.255.255 h 0 ppp0 

the destination address of route matches destination address of datagram, pitr2 forward datagram via ppp0.
message interface ppp0 not broadcast, skipping arp means ppp doesn't support arp protocol because there isn't possibility send message other nodes via ppp. usually, arp used obtain mac address of node knowing ip address , broadcast necessary achieve goal.
difficult propose solution without full topology , routes of routers. however, suggest verifying desired router has interface 192.168.0.254 address (defined in section ifconfig: of *.irt file).
edit problem caused using ++ operator in gates in .ned files. entry
pitr2.pppg++ <--> pplink <--> lisprouter4.pppg++;
means in order connect pitr2 lisprouter4, in pitr2 the next pppg port created , used, example pppg[2] name ppp2. , we not know exact index of port because depends on order of creating connections in .ned file.
proposed solution: revise .ned files and:

  1. in .ned of router have inout pppg[]. change inout pppg[5] instead of 5 write desired number of ppp ports of router (according network topology). number in square brackets size of port.
  2. in .ned of network change each connection definition uses pppg++ this:
    pitr2.pppg[0] <--> pplink <--> lisprouter4.pppg[2];
    remember can't use 2 times same index of port in same router, , index can't exceed total size of port minus one.
  3. modify routing tables in .irt files according indexes of port have made in previous point. name of port pppg[x] pppx.

Comments