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')@140402055514768>, <State('AAA_SUCCESS')@140402055514672>]
CORE_TRANSITIONS = [{'conditions': ['_is_eth_received'], 'dest': 'ETH_RECEIVED', 'source': 'DISABLED', 'trigger': 'process'}, {'dest': 'AAA_REQUEST', 'source': 'ETH_RECEIVED', 'trigger': 'process'}, {'dest': 'AAA_IDLE', 'source': 'AAA_REQUEST', 'trigger': 'process'}, {'conditions': ['_is_aaa_received'], 'dest': 'AAA_RECEIVED', 'source': 'AAA_IDLE', 'trigger': 'process'}, {'conditions': ['_is_aaa_fail'], 'dest': 'AAA_FAILURE', 'source': 'AAA_RECEIVED', 'trigger': 'process'}, {'conditions': ['_is_aaa_success'], 'dest': 'AAA_SUCCESS', 'source': 'AAA_RECEIVED', 'trigger': 'process'}, {'conditions': ['_is_eth_received'], 'dest': 'ETH_RECEIVED', 'source': 'AAA_FAILURE', 'trigger': 'process'}]
DEFAULT_SESSION_TIMEOUT = 3600
DISABLED = 'DISABLED'
ERROR_TRANSTIONS = [{'dest': 'DISABLED', 'source': '*', 'trigger': 'process', 'unless': ['_is_port_enabled']}, {'conditions': ['_is_mab_restart'], 'dest': 'DISABLED', 'source': '*', 'trigger': 'process'}]
ETH_RECEIVED = 'ETH_RECEIVED'
FAILURE_STATES = [<State('AAA_FAILURE')@140402055514768>]
INITIAL_STATE = 'DISABLED'
PROGRESS_STATES = [<State('DISABLED')@140402056621280>, <State('ETH_RECEIVED')@140402055514240>, <State('AAA_REQUEST')@140402055514336>, <State('AAA_IDLE')@140402055514432>, <State('AAA_RECEIVED')@140402055514528>]
STATES = [<State('AAA_FAILURE')@140402055514768>, <State('AAA_SUCCESS')@140402055514672>, <State('DISABLED')@140402056621280>, <State('ETH_RECEIVED')@140402055514240>, <State('AAA_REQUEST')@140402055514336>, <State('AAA_IDLE')@140402055514432>, <State('AAA_RECEIVED')@140402055514528>]
SUCCESS_STATES = [<State('AAA_SUCCESS')@140402055514672>]
TRANSITIONS = [{'conditions': ['_is_eth_received'], 'dest': 'ETH_RECEIVED', 'source': 'DISABLED', 'trigger': 'process'}, {'dest': 'AAA_REQUEST', 'source': 'ETH_RECEIVED', 'trigger': 'process'}, {'dest': 'AAA_IDLE', 'source': 'AAA_REQUEST', 'trigger': 'process'}, {'conditions': ['_is_aaa_received'], 'dest': 'AAA_RECEIVED', 'source': 'AAA_IDLE', 'trigger': 'process'}, {'conditions': ['_is_aaa_fail'], 'dest': 'AAA_FAILURE', 'source': 'AAA_RECEIVED', 'trigger': 'process'}, {'conditions': ['_is_aaa_success'], 'dest': 'AAA_SUCCESS', 'source': 'AAA_RECEIVED', 'trigger': 'process'}, {'conditions': ['_is_eth_received'], 'dest': 'ETH_RECEIVED', 'source': 'AAA_FAILURE', 'trigger': 'process'}, {'dest': 'DISABLED', 'source': '*', 'trigger': 'process', 'unless': ['_is_port_enabled']}, {'conditions': ['_is_mab_restart'], 'dest': 'DISABLED', 'source': '*', 'trigger': 'process'}]
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