ONU State Machine

In BBSim the device state is createdtained using a state machine library: fsm.

Here is a list of possible state transitions in BBSim:

TransitionStarting StatesEnd StateNotes
--created
discovercreateddiscovered
enablediscovered, disabledenabled
receive_eapol_flowenabled, gem_port_addedeapol_flow_received
add_gem_portenabled, eapol_flow_receivedgem_port_addedWe need to wait for both the flow and the gem port to come before moving to auth_started
start_autheapol_flow_received, gem_port_addedauth_started
eap_start_sentauth_startedeap_start_sent
eap_response_identity_senteap_start_senteap_response_identity_sent
eap_response_challenge_senteap_response_identity_senteap_response_challenge_sent
eap_response_success_receivedeap_response_challenge_senteap_response_success_received
auth_failedauth_started, eap_start_sent, eap_response_identity_sent, eap_response_challenge_sentauth_failed
start_dhcpeap_response_success_receiveddhcp_started
dhcp_discovery_sentdhcp_starteddhcp_discovery_sent
dhcp_request_sentdhcp_discovery_sentdhcp_request_sent
dhcp_ack_receiveddhcp_request_sentdhcp_ack_received
dhcp_faileddhcp_started, dhcp_discovery_sent, dhcp_request_sentdhcp_failed

In addition some transition can be forced via the API:

TransitionStarting StatesEnd StateNotes
disableeap_response_success_received, auth_failed, dhcp_ack_received, dhcp_faileddisabledEmulates a devide mulfunction. Sends a DyingGaspInd and then an OnuIndication{OperState: 'down'}