RouteInput():Route an Input (IPv4)Packet (to be ... - Google Groups

0 downloads 117 Views 77KB Size Report
Life Time. Local. Delivery. Callback ? Call:Error Delivery. Callback. Check. TTL. > ? Call:LCB(). TTL Exceeded: Drop
RouteInput():Route an Input (IPv4)Packet (to be forwarded or locally delivered ) Route: Input(IPv4) Packet FOUND Duplicate ? FOUND AODV Socket ?

F

No AODV Interfaces

GET: IPv4 Header DST IP Address SRC IP Address

T .return [true]

Local Delivery Callback ?

F FOUND Multicast ?

T

Update Route Life Time

T .return [false]

Call:Error Delivery Callback

T Call:LCB()

F

Deferred RREQ

Broadcast ?

Check TTL > ?

T

F Lookup Route To ORIGIN

Update Route Life Time ORIGIN FOUND DST ?

Found Route [ORIGIN] ? T

F

Unicast Local Delivery ? WORMHOLE ATTACK ?

F

Call:ECB()

CALL LCB()

.return [true]

TTL Exceeded: Drop Packet

Lookup Route To Broadcast

F

Found Route ? T CALL:UCB()

.return [true]

CHECK DST, Wormhole IP Address ?

SET: Interface iif=1

Update Route Life Time NEXT HOP

T

F

T

FORWARDING .return

F

No Route Drop Packet

RecvAodv ():Process any AODV CNTR Packet is received GET: TYPE HEADER Receive: AODV CNTR Packet

SENDER WRM-1 P2P Interface ?

.return

UPDATE Route_To_Neighbour [Sender AND Receiver]

GET: SENDER IP Address RECEIVER IP Address

WORMHOLE ATTACK ?

CHECK HEADER VALID ?

AODVTYPE RREQ ?

DETECT WORMHOLE ?

Receiver WRM-2 Wifi Interface ?

Sender == SRC && Receive == DST AND Visa-Versa ?

NO UPDATE Route_To_Neighbour [Sender AND Receiver]

AODVTYPE RREP ? ?

AODVTYPE RERR ?

CALL:RecvRequest()

CALL:RecvReply

CALL:RecvError()

SET : Receiver WRM-2 P2P Interface

SENDER WRM-2 P2P Interface ?

Receiver WRM-1 Wifi Interface ?

SET : Receiver WRM-1 P2P Interface

AODVTYPE RREP_ACK ?

Sender==SRC && Receiver==DST ?

CALL:RecvRepltAck()

CALL:RecvHelloReplyAck() Received HELLO_RREP ACK CNTR Packet From DST To SRC

End Timer: Store current Simulation time

RecvRequest: Process RREQ CNTR Packet

Receive RREQ CNTR Packet

FOUND Reverse Route ? T

BlackList ?

F

GET: NET DEVICE RECEIVER SET:NET DEVICE [dev]

SRC WRM-1 P2P Interface ?

F

SRC WRM-2 P2P Interface ?

Ignore RREQ .return

Seq. No. >

T SET Seq. No

Increment Hop Count

UPDATE: Seq. No Routing Table

Intermediate Node FOUND DST Active Route ?

NEXT HOP SRC ?

GET:NET DEVICE WRM-2 P2P Interface SET:NET DEVICE [dev]

GET:NET DEVICE WRM-1 P2P Interface SET:NET DEVICE [dev]

SET:RECEIVER IP ADDRESS WRM-2

SET:RECEIVER IP ADDRESS WRM-1

LOOP Drop Packet

SEND RREP CREATE RREQ CNTR Packet .return Send Packet

.return

CREATE: NEW ROUTING TABLE ENTRY

ADD: NEW ROUTING TABLE ENTRY

(Ukwn Seq. No || Seq. No >) && VALID Seq. No ?

DST ONLY ?

SEND RREP BY Intermediate Node

.return SET Seq. No

F

T

T

T

GET:HOP COUNT

DST ?

WORMHOLE T ATTACK ? F

VALID Seq. No. ?

GET: RREQ ID ORIGINATOR IP Addr

Duplicate RREQ ?

F

Receive RREP CNTR Packet

Receive HELLO_RREP CNTR Packet From: SRC To: DST

GET: RREP Header: DST IP Address HOP COUNT

Create RREP_ACK CNTR Packet RREP HELLO Packet ?

DETECT WORMHOLE ?

CREATE newEntry

TYPE 1 HELLO CALL:ProcessHello()

Found Existing Enrty DST?

VALID Seq. No ?

HOP COUNT ==1 ?

TYPE 2 HELLO CALL:: RecvWrmHello()

return:

Seq. No. >

Seq. No. = VALID ?

SET: RREP Fields: Flag 'A'=0 [NOT Require ACK] Type Field=4 [AODVTYPE_RREP_ACK]

Look Up Route and Gateway For the SRC

Send Packet

ADD newEntry

RREP Header Require ACK?

Originator ?

Update DST[newEntry] Routing Table

CALL: SendWrmHello()

CALL:SendReplyAck

Table: Check Flag IN_SEARCH ?

Update DST[newEntry] Routing Table

Send HELLO_RREP CNTR Packet From: SRC To: DST

Create RREP CNTR Packet DETECT WORMHOLE

SET: RREP Fields: Flag 'A'=1 [Require ACK] Type Field=2 [AODVTYPE_RREP]

Update :Information Precursos

Look Up Table Send Packet From Queue .return

SET TTL

End Timer: Store current Simulation TIME

ProcessHello: Receive RREP HELLO CNTR Packet

ACTIVE ROUTe TO Neighbour ?

SET: PARAMETER LifeTime,Seq.No

WORMHOLE ATTACK ?

UPDATE: RouteToNeighbour

CREATE newEntry [Routing Table]

WRM-1 Receive RREP HELLO From WRM-2 ?

ADD newEntry [Routing Table]

WRM-1 Receive RREP HELLO From WRM-2 ?

SET:Output Device RECEIVER

SET:Interface RECEIVER SET:Output Device WRM-1 P2P NET DEVICE

SET:Output Device WRM-2 P2P NET DEVICE

SET:Interface WRM-1 P2P INTERFACE

SET:Interface WRM-2 P2P INTERFACE