Research Article
Formal Modeling and Verification for MVB
Listing 1
PROMELA codes of a BA.
active proctype Bus_Administrator_1 ( ) { | … | BA_1_STANDBY_MASTER: /*State Standby Master*/ | atomic { | BA_1. curState = STANDBY_MASTER; | BA_1. in_count > 0; /*wait until BA_1. in_count>0*/ | BA_1. input ? frame; /*receive a frame*/ | BA_1. in_count−−; | if | :: frame.type == LOST-> | … /*frame loss*/ | :: (frame. type == MASTERSHIP_OFFERED && frame.recv == BA_1. rank) -> | … /*Mastership offered to me*/ | :: (frame. type == STATUS_REQUEST && frame.recv == BA_1. rank) -> | … /*request status of me*/ | :: (frame. type == REGULAR) -> | … /*Master Frame*/ | :: else -> … | fi; | } | … | } |
|