Verifying the CPA Networking Stack using SPIN/Promela
Kevin Chalmers and Jon Kerridge Edinburgh Napier University
Verifying the CPA Networking Stack using SPIN/Promela Kevin - - PowerPoint PPT Presentation
Verifying the CPA Networking Stack using SPIN/Promela Kevin Chalmers and Jon Kerridge Edinburgh Napier University Breakdown Introduction and Motivation CPA Networking Stack Architecture Operation SPIN Model of the CPA
Kevin Chalmers and Jon Kerridge Edinburgh Napier University
checking
MEta LAnguage)
currently relies on channel mobility internally)
synchronization primitives
nodes
mechanism
Application E vent C
Link
E vent Interfaces C hannel & Link C
C
tream C
pecific Messaging Virtual Numbering Node Addressing C
pecific Addressing R untime Data Types C P A Networking Protocol R aw Data
messages
messages – protocol implemented here
end
end
management, barriers
Link Net Channel Input Net Channel Output LinkTx LinkRx Application Process Application Process
Application Process Net Channel Output (45) LinkTx LinkRx Net Channel Input (97) Application Process LinkTx LinkRx
Application Process Net Channel Output (45) LinkTx LinkRx LinkTx LinkRx
immediately replied with LINK_LOST
connected to link are sent LINK_LOST
ACK – infinite state space
mtype = { SEND , ACK , REJECT_CHANNEL , POISON , LINK_LOST };
typedef CHANNEL_DATA { byte vcn ; byte state = INACTIVE ; chan toChannel ; };
INACTIVE OK_OUTPUT OK_INPUT BROKEN POISONED DESTROYED
create() create() POISON or poison() destroy() destroy() REJECT_CHANNEL or LINK_LOST POISON or poison()
NetChannelOutput
write poison destroy callReturn toLinkTx ackChannel
Read
NetChannelInput
read startRead endRead poison destroy callReturn fromLink
full Promela code
Link
toLinkTx toNetwork fromNetwork
InputNode Link NetChannelInput Receiver
OutputNode Sender NetChannelOutput Link
OutputNode Network InputNode
link failure problems
being sent a message and no error raised
“infinite” buffer
NUMBER_OUTPUTS 1 2 3 4 BUFFER_SIZE FAIL FAIL FAIL FAIL 1 𝟒. 𝟏𝟕 × 𝟐𝟏𝟔 𝒕𝒖𝒃𝒖𝒇𝒕 𝟒𝟔𝟐 𝒆𝒇𝒒𝒖𝒊 FAIL FAIL FAIL 2 𝟑. 𝟖𝟗 × 𝟐𝟏𝟔𝒕𝒖𝒃𝒖𝒇𝒕 𝟒𝟔𝟐 𝒆𝒇𝒒𝒖𝒊 𝟒. 𝟖𝟐 × 𝟐𝟏𝟖 𝒕𝒖𝒃𝒖𝒇𝒕 𝟒𝟑𝟕𝟓 𝒆𝒇𝒒𝒖𝒊 FAIL FAIL 3 𝟑. 𝟖𝟗 × 𝟐𝟏𝟔𝒕𝒖𝒃𝒖𝒇𝒕 𝟒𝟔𝟐 𝒆𝒇𝒒𝒖𝒊 𝟒. 𝟖𝟐 × 𝟐𝟏𝟖 𝒕𝒖𝒃𝒖𝒇𝒕 𝟒𝟑𝟕𝟓 𝒆𝒇𝒒𝒖𝒊 PASS* FAIL 4 𝟑. 𝟖𝟗 × 𝟐𝟏𝟔𝒕𝒖𝒃𝒖𝒇𝒕 𝟒𝟔𝟐 𝒆𝒇𝒒𝒖𝒊 𝟒. 𝟖𝟐 × 𝟐𝟏𝟖 𝒕𝒖𝒃𝒖𝒇𝒕 𝟒𝟑𝟕𝟓 𝒆𝒇𝒒𝒖𝒊 PASS* PASS*
behaviour
required