chewie.state_machines.mab_state_machine module

This Module provides a Bare-bones Mac Authentication Bypass State Machine provide 802.1x MAB Support in Chewie

class chewie.state_machines.mab_state_machine.MacAuthenticationBypassStateMachine(radius_output_queue, src_mac, timer_scheduler, auth_handler, failure_handler, log_prefix)

Bases: AbstractStateMachine

This Class provides a Bare-bones Mac Authentication Bypass State Machine provide 802.1x MAB Support in Chewie

AAA_FAILURE = 'AAA_FAILURE'
AAA_IDLE = 'AAA_IDLE'
AAA_RECEIVED = 'AAA_RECEIVED'
AAA_REQUEST = 'AAA_REQUEST'
AAA_SUCCESS = 'AAA_SUCCESS'
COMPLETION_STATES = [<State('AAA_FAILURE')@140330643771648>, <State('AAA_SUCCESS')@140330643771552>]
CORE_TRANSITIONS = [{'trigger': 'process', 'source': 'DISABLED', 'dest': 'ETH_RECEIVED', 'conditions': ['_is_eth_received']}, {'trigger': 'process', 'source': 'ETH_RECEIVED', 'dest': 'AAA_REQUEST'}, {'trigger': 'process', 'source': 'AAA_REQUEST', 'dest': 'AAA_IDLE'}, {'trigger': 'process', 'source': 'AAA_IDLE', 'dest': 'AAA_RECEIVED', 'conditions': ['_is_aaa_received']}, {'trigger': 'process', 'source': 'AAA_RECEIVED', 'dest': 'AAA_FAILURE', 'conditions': ['_is_aaa_fail']}, {'trigger': 'process', 'source': 'AAA_RECEIVED', 'dest': 'AAA_SUCCESS', 'conditions': ['_is_aaa_success']}, {'trigger': 'process', 'source': 'AAA_FAILURE', 'dest': 'ETH_RECEIVED', 'conditions': ['_is_eth_received']}]
DEFAULT_SESSION_TIMEOUT = 3600
DISABLED = 'DISABLED'
ERROR_TRANSTIONS = [{'trigger': 'process', 'source': '*', 'dest': 'DISABLED', 'unless': ['_is_port_enabled']}, {'trigger': 'process', 'source': '*', 'dest': 'DISABLED', 'conditions': ['_is_mab_restart']}]
ETH_RECEIVED = 'ETH_RECEIVED'
FAILURE_STATES = [<State('AAA_FAILURE')@140330643771648>]
INITIAL_STATE = 'DISABLED'
PROGRESS_STATES = [<State('DISABLED')@140330651498480>, <State('ETH_RECEIVED')@140330651499104>, <State('AAA_REQUEST')@140330642970272>, <State('AAA_IDLE')@140330642972000>, <State('AAA_RECEIVED')@140330642970368>]
STATES = [<State('AAA_FAILURE')@140330643771648>, <State('AAA_SUCCESS')@140330643771552>, <State('DISABLED')@140330651498480>, <State('ETH_RECEIVED')@140330651499104>, <State('AAA_REQUEST')@140330642970272>, <State('AAA_IDLE')@140330642972000>, <State('AAA_RECEIVED')@140330642970368>]
SUCCESS_STATES = [<State('AAA_SUCCESS')@140330643771552>]
TRANSITIONS = [{'trigger': 'process', 'source': 'DISABLED', 'dest': 'ETH_RECEIVED', 'conditions': ['_is_eth_received']}, {'trigger': 'process', 'source': 'ETH_RECEIVED', 'dest': 'AAA_REQUEST'}, {'trigger': 'process', 'source': 'AAA_REQUEST', 'dest': 'AAA_IDLE'}, {'trigger': 'process', 'source': 'AAA_IDLE', 'dest': 'AAA_RECEIVED', 'conditions': ['_is_aaa_received']}, {'trigger': 'process', 'source': 'AAA_RECEIVED', 'dest': 'AAA_FAILURE', 'conditions': ['_is_aaa_fail']}, {'trigger': 'process', 'source': 'AAA_RECEIVED', 'dest': 'AAA_SUCCESS', 'conditions': ['_is_aaa_success']}, {'trigger': 'process', 'source': 'AAA_FAILURE', 'dest': 'ETH_RECEIVED', 'conditions': ['_is_eth_received']}, {'trigger': 'process', 'source': '*', 'dest': 'DISABLED', 'unless': ['_is_port_enabled']}, {'trigger': 'process', 'source': '*', 'dest': 'DISABLED', 'conditions': ['_is_mab_restart']}]
aaa_fail = False
aaa_failure_state(*args, **kwargs)

Method that gets called for logging

aaa_idle_state(*args, **kwargs)

Method that gets called for logging

aaa_received = False
aaa_received_state(*args, **kwargs)

Method that gets called for logging

aaa_request_data = None
aaa_request_state(*args, **kwargs)

Method that gets called for logging

aaa_response_attributes = None
aaa_response_data = None
aaa_success = False
aaa_success_state(*args, **kwargs)

Method that gets called for logging

eth_message_data = None
eth_received = True
eth_received_state(*args, **kwargs)

Method that gets called for logging

event(event)

Processes an event for the state machine

event_message_received(event)

Handle a message received event

handle_event_received()

Main state machine loop

handle_failure()

Handle a AAA_Failure event

handle_success()

Handle a AAA_Success event

mab_disabled_state(*args, **kwargs)

Method that gets called for logging

mab_restart = False
port_enabled = False
port_id_mac = None
process_ethernet_frame()

Perform checks on ethernet frames

process_radius_message()

Perform checks on Radius Packets before they’re passed to the State Machine

radius_state_attribute = None
reset_variables()

Reset all used state-machine variables

send_aaa_request()

Perform sending a AAA Request

session_timeout = 3600
state = None