chewie.nfv_sockets module

Supplicant-Facing Sockets

class chewie.nfv_sockets.EapSocket(interface_name, log_prefix)

Bases: PromiscuousSocket

Handle the EAP socket

receive()

receive from eap socket

send(data)

send on eap socket. data (bytes): data to send

setup()

Set up the socket

class chewie.nfv_sockets.MabSocket(interface_name, log_prefix)

Bases: PromiscuousSocket

Handle the Mab socket for DHCP Requests

DHCP_UDP_DST = 67
DHCP_UDP_SRC = 68
IP_ETHERTYPE = 2048
UDP_IPTYPE = b'\x11'
receive()

Receive activity from supplicant-facing socket

send(data)

Not Implemented – This socket is purely for Listening

setup()

Set up the socket

class chewie.nfv_sockets.PromiscuousSocket(interface_name, log_prefix)

Bases: ABC

Abstract Raw Socket in Promiscuous Mode

EAP_ADDRESS = MacAddress.from_string("01:80:c2:00:00:03")
PACKET_ADD_MEMBERSHIP = 1
PACKET_MR_PROMISC = 1
SIOCGIFINDEX = 35123
SOL_PACKET = 263
get_interface_index()

Get the interface index of the EAP Socket

open(socket_filter)

Setup EAP socket

abstract receive()
abstract send(data)
set_interface_promiscuous()

Sets the EAP interface to be able to receive EAP messages

abstract setup()