Basic Transport Protocol (BTP)

Diagram

Basic Transport Protocol

Usage

Router Instantiation

from flexstack.btp.router import Router as BTPRouter
btp_router = BTPRouter(gn_router)

Request Sending BTP Packet

from flexstack.btp.router import BTPDataRequest

request = BTPDataRequest()
request.btp_type = CommonNH.BTP_B
request.source_port = 0
request.destination_port = 2001
request.destinaion_port_info = 0
request.gn_packet_transport_type = PacketTransportType()
request.gn_destination_address = GNAddress()
request.gn_area = Area()
request.communication_profile = CommunicationProfile.UNSPECIFIED
request.traffic_class = TrafficClass()
request.data = b"payload_data"
request.length = len(request.data)

btp_router.btp_data_request(request)

Response Receiving BTP Packet

from flexstack.btp.router import BTPDataIndication

def btp_data_indication(btp_data_indication: BTPDataIndication) -> None:
    print(f"Received BTP data indication: {btp_data_indication.data}")

btp_router.register_indication_callback_btp(port=2001, callback=btp_data_indication)

Example

Here is an example of a basic script that sends and receives BTP packets with a basic Ethernet Layer 2 Linux Interface: