180 likes | 411 Views
SeaLinx Software Organization. SeaLinx. Protocol Modules. Core Module. Modem Driver. AquaSeNT OFDM Modems. Set of cooperative processes rather than a monolithic process Three processes : Core Module Modem Driver Protocol Modules. SeaLinx Features.
E N D
SeaLinx Software Organization SeaLinx Protocol Modules Core Module Modem Driver AquaSeNT OFDM Modems • Set of cooperative processes rather than a monolithic process • Three processes: • Core Module • Modem Driver • Protocol Modules
SeaLinx Features FEATURE #1: Supports simultaneous protocol bundles to support various applications running on a single node FEATURE #2: Provides a uniform method for cross-layer communication FEATURE #3: Runs protocols as separate processes
SeaLinx Features Data Sensing Remote Control FEATURE #1: Supports simultaneous protocol bundles to support various applications running on a single node FEATURE #2: Provides a uniform method for cross-layer communication FEATURE #3: Runs protocols as separate processes
SeaLinx Features Protocol Processes AquaSeNT OFDM Modems FEATURE #1: Supports simultaneous protocol bundles to support various applications running on a single node FEATURE #2: Provides a uniform method for cross-layer communication FEATURE #3: Runs protocols as separate processes
SeaLinx Features Protocol Module Protocol Module AquaSeNT OFDM Modems Protocol Module Protocol Module FEATURE #1: Supports simultaneous protocol bundles to support various applications running on a single node FEATURE #2: Provides a uniform method for cross-layer communication FEATURE #3: Runs protocols as separate processes
SeaLinx Protocol Organization AquaSeNT OFDM Modems Layer-based organization Cross-layer communication capability via core module
SeaLinx Software Processes Core Modem Protocol
Core Component Example of settings.ini sealinx-core <core port> [GeneralSettings] MacAddress=1 NetworkAddress=1 PacketSize=1024 settings.ini Purpose: Dispatch data among layers by waiting for connections from protocol stack layers Execution: sealinx-core –p <core port>
Physical Layer Example of config_ser.cfg /dev/tty0 #port 38400 #baud rate sealinx-ofdm-cmd <core port> Example of config_ofdm.cfg config_ser.cfg config_ofdm.cfg OFDM_ACOUSTIC_RATE: 2500 OFDM_MTU: 1280 OFDM_IFGT: 110 Purpose: Interprets data from, and sends data to, acoustic modems; an OFDM driver is provided here Exectution: sealinx-ofdm-cmd –p <core port>
Physical Layer Configuration File Example of config_ser.cfg Example of config_ofdm.cfg /dev/tty0 #port 38400 #baud rate OFDM_ACOUSTIC_RATE: 2500 OFDM_MTU: 1280 OFDM_IFGT: 110 1) OFDM_ACOUSTIC_RATE = sending rate (bps) 2) OFDM_MTU = maximum transmission unit (units) 3) OFDM_IFGT = inter-frame guard time (ms)
MAC Layer <protocol ID> sealinx-mac <core port> Purpose: Provide addressing and channel access control mechanism for node communication within a multiple access network that uses a shared medium; a dummy MAC and UW-ALHOHA are provided here Execution: sealinx-mac –i <protocol ID> -p <core port>
MAC Layer Example of <aloha config file> UWALOHA_SOCK_TIMEOUT : 10 UWALOHA_ACK_TIMEOUT : 25 UWALOHA_RETX_MAX : 3 UWALOHA_BROADCAST_ADD : 99 AQUA_MAC_LOG : aloha.log <protocol ID> sealinx-uw-aloha <core port> Example of <arp table file> <aloha config file> <arp table file> 1 : 1 #mac : network 2 : 2 #mac : network 3 : 3 #max : network • Execution: sealinx-uwaloha –i <protocol ID> -p <core port> -c <aloha config file> -t <arp table file>
MAC Layer UW-Aloha Configuration File Example of <arp table file> Example of <aloha config file> 1 : 1 #mac : network 2 : 2 #mac : network 3 : 3 #max : network UWALOHA_SOCK_TIMEOUT : 10 UWALOHA_ACK_TIMEOUT : 25 UWALOHA_RETX_MAX : 3 UWALOHA_BROADCAST_ADD : 99 AQUA_MAC_LOG : aloha.log 1) UWALOHA_SOCK_TIMEOUT = timeout length for reading from core socket 2) UWALOHA_ACK_TIMEOUT = acknowledgment timeout 3) UWALOHA_RETX_MAX = maximum number of retransmissions 4) UWALOHA_BROADCAST_ADD = broadcast address (to be deprecated) 5) AQUA_MAC_LOG = name of log file
UWALOHA_SOCK_TIMEOUT : 10 UWALOHA_ACK_TIMEOUT : 25 UWALOHA_RETX_MAX : 3 UWALOHA_BROADCAST_ADD : 99 AQUA_MAC_LOG : aloha.log UW-Aloha Program Waiting for acknowledgment? No Yes Wait Time > ACK_TIMEOUT No Yes Numretx > RETX_MAX Yes No Transmit (again) Drop packet, prepare for new packet Listen from Core for acknowledgment or new packet
Network Layer • Purpose: Provide functions and procedures to transfer datagram between nodes in same network; a dummy network layer, as we all as static and dynamic routing layers are provided here • Execution: sealinx-net -i <protocol ID> -p <core port> -m <mac protocol ID> • Execution: sealinx-sroute-i <protocol ID> -p <core port> -m <mac protocol ID> -c <routing table file> • Execution: sealinx-droute-i <protocol ID> -p <core port> -m <mac protocol ID> -c <dynamic routing config>
Transport Layer • Purpose: Provide reliable transmission of datagrams between nodes in same network; a dummy transport layer is provided here • Execution: sealinx-tra-i <protocol ID> -p <core port> -m <mac protocol ID> -n <net protocol ID>
Application Layer • Purpose: Interacts with software application that implements a communication component; a Poisson traffic generator is included here • Execution: sealinx-tx-poi -i <app ID> -p <core port> -m <mac protocol ID> -n <net protocol ID> -t <transport protocol ID> -l <packet length> -r <traffic route> -d <destination node>