RLRP routing  v.0.1.0
Transport.RawTransport Class Reference

Class for interacting with raw sockets of the real network interface. More...

Collaboration diagram for Transport.RawTransport:
Collaboration graph

Public Member Functions

def __init__ (self, dev, node_mac, topology_neighbors)
 Constructor. More...
 
def recv_data (self)
 Receive and return source mac, dsr_header and upper layer data from the interface. More...
 
def send_raw_frame (self, dst_mac, dsr_message, payload)
 Send raw frame to the network. More...
 
def gen_eth_header (self, src_mac, dst_mac)
 Generate ethernet header. More...
 
def recv_data_with_filter (self)
 Receive frames with filtering. More...
 
def recv_data_no_filter (self)
 Receive all frames without filtering. More...
 
def get_src_mac (self, eth_header)
 Get source MAC address from the given ethernet header. More...
 
def close_raw_recv_socket (self)
 Stop reading from the receiving socket and close it. More...
 

Public Attributes

 send_socket
 Create a send raw socket. More...
 
 proto
 Custom protocol ID on L2 layer. More...
 
 node_mac
 The node's own MAC address. More...
 
 broadcast_mac
 Default value of the broadcast MAC address. More...
 
 topology_neighbors
 List of neighbors MAC addresses to be accepted if the filtering is On. More...
 
 running
 Thread running state bool() flag. More...
 
 recv_socket
 For receiving incoming raw frames. More...
 
 recv_data
 Define which RawTransport.recv_data method will be used, depending on the SET_TOPOLOGY_FLAG flag value. More...
 

Detailed Description

Class for interacting with raw sockets of the real network interface.

Constructor & Destructor Documentation

def Transport.RawTransport.__init__ (   self,
  dev,
  node_mac,
  topology_neighbors 
)

Constructor.

Parameters
selfThe object pointer.
devName of physical network interface.
node_macThe node's own MAC address.
topology_neighborsList of neighbors MAC addresses to be accepted if the filtering is On.
Returns
None

Member Function Documentation

def Transport.RawTransport.close_raw_recv_socket (   self)

Stop reading from the receiving socket and close it.

Parameters
selfThe object pointer.
Returns
None
def Transport.RawTransport.gen_eth_header (   self,
  src_mac,
  dst_mac 
)

Generate ethernet header.

Parameters
selfThe object pointer.
src_macSource MAC address.
dst_macDestination MAC address.
Returns
Ethernet header in binary string representation.

Here is the caller graph for this function:

def Transport.RawTransport.get_src_mac (   self,
  eth_header 
)

Get source MAC address from the given ethernet header.

Parameters
selfThe object pointer.
eth_headerEthernet header in binary representation.
Returns
MAC address in "xx:xx:xx:xx:xx:xx" format.

Here is the caller graph for this function:

def Transport.RawTransport.recv_data (   self)

Receive and return source mac, dsr_header and upper layer data from the interface.

This method listens for any incoming raw frames from the interface, and outputs the list containing a source mac, dsr_header and the upper_raw_data of the frame received.

Parameters
selfThe object pointer.
Returns
[src_mac, dsr_header_obj, upper_raw_data].
def Transport.RawTransport.recv_data_no_filter (   self)

Receive all frames without filtering.

Receive and return source mac, dsr_header and upper layer data from the interface from ANY mac address without filtering.

Parameters
selfThe object pointer.
Returns
[src_mac, dsr_header_obj, upper_raw_data].

Here is the call graph for this function:

def Transport.RawTransport.recv_data_with_filter (   self)

Receive frames with filtering.

Receive and return source mac, dsr_header and upper layer data from the interface, filter out the mac addresses, which are not in the RawTransport.topology_neighbors list.

Parameters
selfThe object pointer.
Returns
[src_mac, dsr_header_obj, upper_raw_data].

Here is the call graph for this function:

def Transport.RawTransport.send_raw_frame (   self,
  dst_mac,
  dsr_message,
  payload 
)

Send raw frame to the network.

Parameters
selfThe object pointer.
dst_macDestination MAC address.
dsr_messageMessage object from Messages module.
payloadUser/Service payload after the protocol's header.
Returns
None

Here is the call graph for this function:

Member Data Documentation

Transport.RawTransport.broadcast_mac

Default value of the broadcast MAC address.

Transport.RawTransport.node_mac

The node's own MAC address.

Transport.RawTransport.proto

Custom protocol ID on L2 layer.

Transport.RawTransport.recv_data

Define which RawTransport.recv_data method will be used, depending on the SET_TOPOLOGY_FLAG flag value.

Transport.RawTransport.recv_socket

For receiving incoming raw frames.

Transport.RawTransport.running

Thread running state bool() flag.

Transport.RawTransport.send_socket

Create a send raw socket.

Type 0x7777 corresponds to the chosen "protocol_type" in our custom ethernet frame. In this way, the socket can only receive packets with 0x7777 protocol type.

Transport.RawTransport.topology_neighbors

List of neighbors MAC addresses to be accepted if the filtering is On.


The documentation for this class was generated from the following file: