PPT

advertisement
Formal Verification of AODV Protocol
using Cadence SMV
(CPSC513 Course Project)
Xin Liu and Jun Wang
liu@cs.ubc.ca, jwang@cs.ubc.ca
Outline
 Motivation
 AODV Introduction
 Building Model
 Conclusion
Motivation
 Find an appropriate approach to use Cadence
SMV verifying real-life software communication
protocols, such as AODV. The emphasis is on
how to build the model.
 Find some bugs in AODV protocol (RFC3561)?
Hope we can…
AODV Introduction
AODV (Ad hoc On-demand Distance Vector)
Protocol


a reactive routing protocol for ad hoc mobile
networks.

IETF standardizing for MANET.

13 Internet drafts, 1 experimental RFC3561 (July
2003)

Important property: Loop free
AODV Introduction (cont.)
 Example:
originator
Dest Seq
-
RREQ: dest_seq
RREP: dest_seq, hop_count
RERR: dest_seq
A
Next Hop
Hop count
-
-
C
destination
Seq: 0
RREQ: -
RREQ: Dest Seq
-
RREP: 0, 0
B
intermediator
Dest Seq
-
Next Hop
Hop count
-
-
Next Hop
Hop count
-
-
AODV Introduction (cont.)
 Example:
originator
Dest Seq
-
RREQ: dest_seq
RREP: dest_seq, hop_count
RERR: dest_seq
A
Next Hop
Hop count
-
-
C
destination
Seq: 0
Dest Seq
-
RREP: 0, 1
B
intermediator
Dest Seq
0
Next Hop
Hop count
C
1
Next Hop
Hop count
-
-
AODV Introduction (cont.)
 Example:
originator
Dest Seq
0
RREQ: dest_seq
RREP: dest_seq, hop_count
RERR: dest_seq
A
Next Hop
Hop count
B
2
C
destination
Seq: 0
Dest Seq
-
B
intermediator
Dest Seq
0
Next Hop
Hop count
C
1
Next Hop
Hop count
-
-
Building Model
 We have built 4 versions of models.
 Some tricks in modeling: (included in all the models)
 How to model node: we do not model node as a module,
instead, we model each operation of nodes as a module, such
as route discovery, receive a RREP, etc.
 Timeout: nondeterminism or counter.
 Sequence Number: it’s too expensive to model it as infinite or
32 bits long. Solution is using small number (<3) and a
boundary value.
 Periodical Hello message: it’s very hard to model periodical
message in SMV, so the solution is not to model it directly.
Instead, we model link break as a process, which has the
same effect as not receiving periodical hello message.
 Message Loss: easy to model, but hard to be fair. Solution is
to use fairness constraints if the property we are verifying is
reachability. For Loop-free property, nondeterminism is fine.
Building Model – 1st Model
 1st Model(Naïve approach):
 Try to build a complete and general model.
 Results:
 2 nodes model can work, but it consumes 300
~ 400 MB memory.
 3 nodes model state explosion!

Building Model – 2nd Model
 2nd Model:
 Every node has a specific role: originator,
intermediator, or destination. Only originator can
initiate route discovery. Each node only
maintains data which is related to its role.
 Enumerate possible network topology, model
separately for each meaningful topology.
Building Model – 2nd Model
 3 nodes possible network topology:
originator
originator
intermediator
destination
(a) Linear Topology
intermediator
destination
(b) Triangle Topology
Building Model – 2nd Model
 Result:
 The result is “Great!”, we found 2 “bugs”, one is found by
Linear model, the other is found by Triangle model.
 Table
Variables
Memory
Running Time
Linear Model
48
114 MB
4 minutes
Triangle Model
88
130 MB
4.5 minutes
 Are they really bugs?
 No, we found that we increased destination sequence
number incorrectly in some situation. 
 We should be more careful to model the protocol, but we
think that RFC3561 is not organized very well, and it is not
written clearly.
Building Model – 3rd Model
 3rd Model:
 First, fix the mistakes in the 2nd Model.
 Minimize the number of variables further. We get rid of
the variables which can be derived by other variables.
 Besides considering 3 nodes, also consider 4 nodes
possible network topology, model the meaningful
topology separately.
Building Model – 3rd Model
 4 nodes possible network topology:
Star Topology
Diamond Topology
Umbrella Topology
Camel Topology
Linear Topology
Complete Topology
Building Model – 3rd Model
 We modeled the star and umbrella topology for 4
nodes.
 Result:
 3 nodes models can work.
 4 nodes star topology can work, it has 98 variables,
consumes 45 MB memory, and runs for 2 minutes.
 But 4 nodes umbrella topology can not work, it does not
state explosion, instead, whenever it consumes 600+MB
memory, SMV crash! 
 The verification result:
 “Loop free”
Building Model – 4th Model
 Is AODV really loop free? What else can we do?
 During model construction, we did abstractions, lots
of details are not considered and modeled.
 Look at RFC3561 more carefully, we found this
sentence:
“A node initiates a RERR message in three situations:
(i)…
(ii) if it gets a data packet destined to a node for which it
does not have an active route…
(iii)…”
 We decide to add the data packet into our model.
Building Model – 4th Model
 4th Model:
 Add the data packet into the model.
 Results:
 3 nodes triangle model found a bug, Great!!!
 We double checked the RFC3561, we think that it is a real
bug!

Building Model – 4th Model
 The bug we found:
RREQ: dest_seq
RREP: dest_seq, hop_count
originator
RERR: dest_seq
A
Dest Seq
flag
Next Hop
Hop count
0
valid
B
2
C
destination
Seq: 0
RREQ: 1 (loss)
Repair
B
intermediator
X
Link break
Dest Seq
flag
Next Hop
Hop count
0
valid
C
1
Building Model – 4th Model
 The bug we found:
RREQ: dest_seq
RREP: dest_seq, hop_count
originator
RERR: dest_seq
A
Dest Seq
flag
Next Hop
Hop count
0
valid
B
2
C
destination
Seq: 0
X
RERR: 0 (loss)
Repair timeout
B
intermediator
Link break
Dest Seq
flag
Next Hop
Hop count
1
invalid
-
-
Building Model – 4th Model
 The bug we found:
RREQ: dest_seq
RREP: dest_seq, hop_count
originator
RERR: dest_seq
RREQ: 1
A
Dest Seq
flag
Next Hop
Hop count
0
valid
B
2
C
destination
Seq: 0
RREQ: 1
B
intermediator
X
Link break
Dest Seq
flag
Next Hop
Hop count
1
invalid
-
-
Building Model – 4th Model
 The bug we found:
RREQ: dest_seq
RREP: dest_seq, hop_count
originator
RERR: dest_seq
RREP: 1, 0
A
Dest Seq
flag
Next Hop
Hop count
0
valid
B
2
C
destination
Seq: 1
Data packet
X
B
intermediator
Link break
Dest Seq
flag
Next Hop
Hop count
1
invalid
-
-
Building Model – 4th Model
 The bug we found:
RREQ: dest_seq
RREP: dest_seq, hop_count
originator
RERR: dest_seq
A
Dest Seq
flag
Next Hop
Hop count
1
valid
C
1
C
destination
Seq: 1
RREP: 1, 1
X
RERR: 1
B
intermediator
Link break
Dest Seq
flag
Next Hop
Hop count
1
invalid
-
-
Building Model – 4th Model
 The bug we found:
RREQ: dest_seq
RREP: dest_seq, hop_count
originator
RERR: dest_seq
A
Dest Seq
flag
Next Hop
Hop count
1
invalid
-
-
C
destination
Seq: 1
X
B
intermediator
Link break
Dest Seq
flag
Next Hop
Hop count
1
valid
A
2
Building Model – 4th Model
 The bug we found:
RREQ: dest_seq
RREP: dest_seq, hop_count
originator
RERR: dest_seq
A
Dest Seq
flag
Next Hop
Hop count
1
invalid
-
-
X
Link break
C
destination
Seq: 1
RREQ: 1
X
RREP: 1, 2
B
intermediator
Link break
Dest Seq
flag
Next Hop
Hop count
1
valid
A
2
Building Model – 4th Model
 The bug we found:
RREQ: dest_seq
RREP: dest_seq, hop_count
originator
RERR: dest_seq
A
Dest Seq
flag
Next Hop
Hop count
1
valid
B
3
X
Link break
C
destination
Seq: 1
X
B
intermediator
Link break
Dest Seq
flag
Next Hop
Hop count
1
valid
A
2
Conclusion

We find an appropriate approach to use SMV verifying
AODV protocol, that is, model separately for each role
and for each possible network topology.

We find a bug in current AODV protocol.

We think SMV is not a suitable tools for verifying
communication protocols, it is more suitable for
verifying hardware systems.

To verify real-life communication protocols, you need a
very powerful machine, our suggestion is try to find a
Mainframe… 
References
1.
RFC3561 http://www.faqs.org/rfcs/rfc3561.html
2.
Cadence SMV documentation
3.
K. Bhargavan, D. Obradovic, C. A. Gunter, Formal
Verification of Standards for Distance Vector Routing
Protocols, JACM, Volume 49 , Issue 4, July 2002.
4.
Sibusisiwe Chiyangwa, Marta Kwiatkowska, Modeling Ad hoc
On-demand Distance Vector (AODV) Protocol with Time
Automata, in Proc, Third Workshop on Automated
verification of Critical Systems (AVoCS'03), Southampton
April 2003
5.
…
Formal Verification of AODV Protocol using Cadence SMV
Thanks!
Created by Xin Liu and Jun Wang, April 3, 2004
Download