Core Flight System Software Bus Networking Application Design As Built

Slides:



Advertisements
Similar presentations
How to use TinyOS Jason Hill Rob Szewczyk Alec Woo David Culler An event based execution environment for Networked Sensors.
Advertisements

RIP V1 W.lilakiatsakun.
Software setup with PL7 and Sycon V2.8
1 SpaceWire Update NASA GSFC November 25, GSFC SpaceWire Status New Link core with split clock domains complete (Much faster) New Router core.
CCNA – Network Fundamentals
CCNA2 Module 4. Discovering and Connecting to Neighbors Enable and disable CDP Use the show cdp neighbors command Determine which neighboring devices.
Networks I Transmission Control Protocol Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Estado de México Prof. MSc. Ivan A. Escobar.
Semester 4 - Chapter 4 – PPP WAN connections are controlled by protocols In a LAN environment, in order to move data between any two nodes or routers two.
The Computer Communication Lab (236340) Spring 2005 Universal Plug and Play on Mobile Phone With Qualcomm - Device -
Exemplar CFS Architecture
SERIAL BUS COMMUNICATION PROTOCOLS
Chapter 17 Networking Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William Stallings.
LWIP TCP/IP Stack 김백규.
Networks – Network Architecture Network architecture is specification of design principles (including data formats and procedures) for creating a network.
1-1 Embedded Network Interface (ENI) API Concepts Shared RAM vs. FIFO modes ENI API’s.
Cisco S2 C4 Router Components. Configure a Router You can configure a router from –from the console terminal (a computer connected to the router –through.
1 Lunar Reconnaissance Orbiter (LRO) CRaTER Technical Interchange Meeting C&DH Flight Software April 14, 2005.
1 CMPT 471 Networking II IGMP (IPv4) and MLD (IPv6) © Janice Regan,
CS 8903 Demo Wireless Interface for the Bioloid Robot Chetna Kaur.
Copyright 2002, S.D. Personick. All Rights Reserved.1 Telecommunications Networking II Topic 20 Transmission Control Protocol (TCP) Ref: Tanenbaum pp:
© Jörg Liebeherr (modified by M. Veeraraghavan) 1 ICMP: A helper protocol to IP The Internet Control Message Protocol (ICMP) is the protocol used for error.
 Wind River Systems, Inc Appendix - E Shared Memory Network.
Agilent Technologies Copyright 1999 H7211A+221 v Capture Filters, Logging, and Subnets: Module Objectives Create capture filters that control whether.
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
1 CSE 5346 Spring Network Simulator Project.
© Jörg Liebeherr (modified by M. Veeraraghavan) 1 ICMP The PING Tool Traceroute program IGMP.
UDP : User Datagram Protocol 백 일 우
LonWorks Introduction Hwayoung Chae.
11 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
CHAPTER 3 Router CLI Command Line Interface. Router User Interface User and privileged modes User mode --Typical tasks include those that check the router.
Networks by Topology and Protocols
Introduction to Operating Systems Concepts
Event Sources and Realtime Actions
Managing a Cisco Devices Internetwork
SPiiPlus Training Class
Understanding and Improving Server Performance
Instructor Materials Chapter 6: Network Layer
Master’s Project Presentation
Adopting the Python language for On-board Programmable Payload Autonomy Steven Doran 2016 Flight Software Workshop 12/14/2016.
Simulink Interface Layer (SIL)
Bluetooth connection & GAIA protocol
Exemplar CFS Architecture
Data Transport for Online & Offline Processing
Do-more Technical Training
Anton Burtsev February, 2017
Lecture 4: Operating System Structures
Forwarding and Routing IP Packets
Instructor & Todd Lammle
CS 286 Computer Organization and Architecture
Introduction to Networking
Chapter 6: Network Layer
P2P with non-centralized Why P2P?
Integrating CCSDS Electronic Data Sheets into Flight Software
Mikael Hakansson IoT – Common patterns and practices Integration MVP
Computer Architecture
Northbound API Dan Shmidt | January 2017
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Chapter 3: Operating-System Structures
NASA/ Johnson Space Center
Chapter 2: Operating-System Structures
Linux Architecture Overview.
GSFC cFS Product Status
A Simple Sensing Program Structure
Lecture9: Embedded Network Operating System: cisco IOS
Chapter 2: Operating-System Structures
A case study of implementations of SBN with SpaceWire
Chapter 13: I/O Systems.
Lecture9: Embedded Network Operating System: cisco IOS
Presentation transcript:

Core Flight System Software Bus Networking Application Design As Built Christopher.D.Knight@nasa.gov (650) 604-3471 NASA Ames Research Center Intelligent Systems Division (Code TI) 17.09.2018 cFS Application: SBN

Design (1) SBN is a cFS application that… …connects the local software bus to one or more other cFS nodes (who are also running SBN) such that all messages sent by an application on one bus will be received by an application on another bus. …has a modular network architecture (TCP, UDP, Serial, SpaceWire, etc.) to connect peers and supports mixed-mode peer networks. …utilizes an “announce” and “heartbeat” protocol to provide network state awareness to the SBN application. …remaps and filters outgoing messages (cFS table-configured.) 17.09.2018 cFS Application: SBN testnotes

Design (2) SBN is a cFS application that… …subscribes to the CFE_SB_ALLSUBS_TLM_MID and sends a CFE_SB_SEND_PREV_SUBS_CC to receive all existing subscriptions at startup. …subscribes to the CFE_SB_ONESUB_TLM_MID message that informs SBN when a local application has (un)subscribed. …uses a task for each peer for receiving messages from the peer and publishing it on the local SB. …polls local pipes periodically (via SCH command and/or timeout) for messages to send out to peers. ...Ensures all SBN and CCSDS headers are big-endian over the wire. 17.09.2018 cFS Application: SBN testnotes

Concerns/Future Developments Issue Fix Chatty protocol of announcing and heartbeating. Need for all net types? Improvements already implemented. Push protocol chatter down to modules? SBN “star network” only, lacks any forwarding/routing capability. Develop forwarding/routing architecture, or develop/integrate separate app (CI/TO?) cFS SB limits the total number of MIDs to 256. Large SBN networks will need significantly more. Leverage remapping/filtering. Increase SB limits. Investigate impacts. SBN subscribes to all MIDs of all other subs, plus subs for all peers. Increase limits, leverage filtering to limit subs for peers. SBN provides no guarantee of delivery. Use TCP, or (re)add a guarantee of delivery windowing logic. SBN “polls” network connections set in NO_WAIT, per SCH wakeup. Task-based SBN implemented but not merged (wise for RT?) Could use select(). SBN connections defined at start time. Allow for command-driven network configuration? 17.09.2018 cFS Application: SBN testnotes

Context Diagram Peer 1 Peer 2 SBN SBN NetNum 0 NetNum 1 CPU Peer 3 SBN Messages/ Subscriptions 17.09.2018 cFS Application: SBN 5 testnotes

Sequence: Setup SBN SB Network Peer 17.09.2018 cFS Application: SBN Startup “local subs” “announce” Peer timeout “announce” Startup timeout Announcing “announce” “announce” Ann. timeout “announce” “here are my subs” “here are my subs” Heartbeating Heartbeating <SB messages> 17.09.2018 cFS Application: SBN

Sequence: Packet Exchange Peer cFS Apps cFS Apps SB SBN Subscribe() … “enable sub reporting” “subs” “subs” from peer SubscribeLocal() <SB messages> SendMsg() Unsubscribe() 17.09.2018 cFS Application: SBN

Sequence: Teardown Network Peer SBN 17.09.2018 cFS Application: SBN <SB messages> <SBmessages> Heartbeating Heartbeating Terminated HEARTBEAT_ TIMEOUT SBN_ “announce” Announcing “announce” 17.09.2018 cFS Application: SBN

Configuration Files: Module Data Parameter Type Description Protocol ID int The identifying number for this protocol. Protocol Name char[50] The name of this protocol. Module Path The path to the module file. Module Operations Symbol The symbol in the module’s symbol table containing the methods the module provides. The configuration file is modeled on the ES startup script, one record per line, fields separated by commas and lines terminated with semicolons. For example: 1, UDP, /cf/sbn_udp_module.so, SBN_UDP_Ops; 2, TCP, /cf/sbn_tcp_module.so, SBN_TCP_Ops; 6, Serial, /cf/sbn_serial_module.so, SBN_Serial_Ops; 9/17/2018 cFS Application: SBN testnotes

Configuration Files: Peer Data Parameter Type Description CPU Name char[ SBN_MAX_PEERNAME_LENGTH] The CPU name of the node (needs to match CFE_CPU_NAME.) CPU ID uint32 The ID of the node (needs to match CFE_CPU_ID.) Protocol ID int The protocol ID for the module to connect to this node. Spacecraft ID The Spacecraft ID QoS uint8 The QoS of the connection. NetNumber The Network Number (if you have multiple distinct networks sharing peers.) +++ module-specific parameters (e.g. hostname/port, serial device filename, etc.) 9/17/2018 cFS Application: SBN testnotes

Configuration Parameters (1) #define SBN_* Default Description int MAX_NETWORK_PEERS 4 Number of peers allowed a network. int SUB_PIPE_DEPTH 256 Depth of the subscription pipe. int MAX_ONESUB_PKTS_ON_PIPE Maximum number of individual subscription messages on the subscription pipe. int MAX_ALLSUBS_PKTS_ON_PIPE 64 Maximum number of “all subscriptions” messages on the subscription pipe. int MAX_INTERFACE_TYPES 6 Max number of interface modules that can be loaded. int SCH_PIPE_DEPTH 10 Depth of the scheduler pipe. int MOD_STATUS_MSG_SIZE 128 In Hk messages, the module can provide its own data. This is the max size of that block of RAM. boolean DEBUG_MSGS undef If defined, SBN will produce copious debug events. 9/17/2018 cFS Application: SBN testnotes

Configuration Parameters (2) #define SBN_* Default Description char * VOL_MODULE_FILENAME “/ram/SbnModuleData.dat” Path of the module configuration in the volatile memory. char * NONVOL_MODULE_FILENAME “/cf/SbnModuleData.dat” Path of the module configuration in the non-volatile memory. int MODULE_FILE_LINE_SIZE 128 Max length of a module file line. char * VOL_PEER_FILENAME “/ram/SbnPeerData.dat” Path of the peer configuration in the volatile memory. char * NONVOL_PEER_FILENAME “/cf/SbnPeerData.dat” Path of the peer configuration in the non-volatile memory. int PEER_FILE_LINE_SIZE Max length of a peer file line. 9/17/2018 cFS Application: SBN testnotes

Commands Command (#defined as SBN_<cmd>_CC) Parameters Description NOOP (none) General app aliveness test – verifies command handler and event generation. RESET Reset application housekeeping telemetry counters. RESET_PEER uint8 PeerNum Resets the task, stopping and clearing config. SEND_HK SBN sends telemetry containing the current status of the SBN network. MYSUBS SBN sends telemetry containing the local subscriptions that SBN is subscribed to. PEERSUBS uint8 PeeerNum SBN sends telemetry containing the subscriptions the local SBN is aware of for that peer. SCH_WAKEUP SBN waits on wakeup messages from the scheduler and also has a built-in timeout in case SCH is not running. Housekeeping requests are sent as commands with housekeeping-specific command codes. Responses all are sent as telemetry with the same message ID but the first byte of the response is the command code that made the request. 17.09.2018 cFS Application: SBN testnotes

Housekeeping (1) SBN_HkPacket_t Telemetry Point Data Type Description TlmHeader uint8[CFE_SB_TLM_HDR_SIZE] The CCSDS header. CC uint8 The command code that requested this housekeeping. <Padding> uint8 * 3 32-bit align the remainder CmdCount Number of successful ground commands (includes commands from on board sources). ErrCount Number of commands with process errors. SubCount uint16 Number of subscriptions for local apps. EntryCount Total number of entries (hosts and peers.) HostCount Number of host entries. PeerCount Number of peer entries. PeerStatus SBN_PeerStatus_t * SBN_MAX_NETWORK_PEERS Details for each peer. 17.09.2018 cFS Application: SBN 14 testnotes

Housekeeping (2) SBN_PeerStatus_t Telemetry Point Data Type Description InUse uint8 Set to !0 when in use. QoS The CCSDS quality of service. ProtocolId The ID of the protocol to use to connect to this peer. State Whether this node is connected (heartbeating) or disconnected (announcing.) Name char * SBN_MAX_PEERNAME_LENGTH The name of the peer. ProcessorId uint32 The cFS processor ID of the peer. SpaceCraftId The ID of the spacecraft for this peer. LastSent OS_time_t Last time I sent this peer a message. LastReceived Last time I received a message from this peer. SentCount uint16 Number of messages sent to this peer since last reset. RecvCount Number of messages received from this peer since last reset. SentErrCount Number of errors raised when sending to this peer. RecvErrCount Number of errors raised when trying to receive from this peer. SubCount Number of subscriptions sent to me by this peer. <Padding> uint8 * 2 32-bit align the next block. IFData uint8 * 32 IF-specific private data block. 17.09.2018 cFS Application: SBN 15 testnotes

Housekeeping (3) SBN_HkSubsPacket_t Telemetry Point Data Type Description TlmHeader uint8[CFE_SB_TLM_HDR_SIZE] The CCSDS header. CC uint8 The command code that requested this housekeeping. PeerIdx The index of the peer this is a subscription list for. SubCount uint16 The number of subscriptions for this peer. Subs CFE_SB_MsgId_t * SBN_MAX_SUBS_PER_PEER Subscriptions for this peer. 17.09.2018 cFS Application: SBN 16 testnotes

Event IDs Event ID Description 17.09.2018 cFS Application: SBN #define SBN_..._EID Description SB Local software bus INIT Application initialization MSG SB message FILE Configuration (module and peer) file PEER Local peer resources (pipes, memory) PROTO Network protocol CMD Commanding SUB Subscriptions 17.09.2018 cFS Application: SBN testnotes

Network Protocol Field Type Description Field Type Description Field MsgSize uint16 Size of the payload. uint8 Announce/Sub/Unsub/App CpuId uint32 CPU ID of the sender. (Needed for UDP). Announce Message Field Type Description Ident uchar[48] GIT identity $Id: <MD5>$ (Un)Subscription Message Field Type Description MsgId uint16 Message ID of the subscription. Qos uint8 + uint8 9/17/2018 cFS Application: SBN testnotes

Network Module API int Load(const char **, int, void *); int InitHost(SBN_HostInterface_t *Host); int InitPeer(SBN_PeerInterface_t *Peer); int Send(SBN_PeerInterface_t *Peer, SBN_MsgType_t MsgType, SBN_MsgSize_t MsgSize, SBN_Payload_t *Payload); int Recv(SBN_PeerInterface_t *Peer, SBN_MsgType_t *MsgTypePtr, SBN_MsgSize_t *MsgSizePtr, SBN_CpuId_t *CpuIdPtr, SBN_Payload_t *PayloadBuffer); int ReportModuleStatus(SBN_ModuleStatusPacket_t *Buffer); int ResetPeer(SBN_PeerInterface_t *Peer); 9/17/2018 cFS Application: SBN testnotes