Saturday, October 1, 2016

Structure of ION

Directory Structure of ION

[ams] Asynchronous Message Service 

is a data system communication architecture that minimize complexity in the development and operations of data systems by isolating the modules of mission systems. It is at the application service layer.

Details Description

Some c files in ams folder containing main() function. If a file contains main() function, its program is created in main directory (ION/ion-3.5.0). Here is the structure of main function and the list of programs
#if defined (ION_LWT)
int filename (int a1, int a2, int a3, int a4, int a5,
                     int a6, int a7, int a8, int a9, int a10)
#else
int main(int argc, char *argv[])
{
   return 0;
}

  1. ams/library/amsd.c
  2. ams/rams/ramsgate.c
  3. ams/test/amsbenchr.c
  4. ams/test/amsbenchs.c
  5. ams/test/amshello.c
  6. ams/test/amslog.c
  7. ams/test/amslogprt.c
  8. ams/test/amsshell.c
  9. ams/utils/amsmib.c
  10. ams/utils/amsstop.c  (don't know why it does not create this problem even its c file has main()) 

    [bp] Bundle Protocol

    Provide route computation, forwarding, congestion avoidance, and control over quality of service. It includes CGR (Contact Graph Routing).
     Bundle protocol  = Internet protocol IP

    Details Description

     

     

    There are a lot of c files containing main() functions in this bp folder, and almost all files have the same format as the following.

    /* * * Main thread functions * * * */
    #if defined (ION_LWT)
    int filename (int a1, int a2, int a3, int a4, int a5,
                         int a6, int a7, int a8, int a9, int a10)
    #else
    int main(int argc, char *argv[])
    {
         return 0;
    }

    After building entire ION system, all c files containing main() function are created their program in the main directory of ION system. Therefore, we have the list of program names for bp folder:

    acsadmin acslist bibeclo bpadmin bpcancel bpchat bpclock
    bpcounter bpdriver bpecho bping bplist bpnmtest bprecvfile
    bpsendfile bpsink bpsource bpstats bpstats2 bptrace bptransit
    brsccla brsscla bsspcli bsspclo cgrfetch dccpcli dccpclo
    dgrcla dtn2admin dtn2adminep dtn2fw hmackeys imcadmin imcfw
    ipnadmin ipnadminep ipnd ipnfw lgagent lgsend ltpcli
    ltpclo stcpcli stcpclo tcpcli tcpclo udpcli udpclo
      We can run these program by using
      ION/ion-3.5.0/bpchat

      [bss] Bundle Stream Service

      provide service to stream video, data, continuous generated application data over a DTN (delay-tolerant network).

      Details Description 

      There is 4 c files containing containing main() function. Their program is created during the building process of the entire ION. The structure of main function and the list of programs are:

      #if defined (ION_LWT)
      int filename (int a1, int a2, int a3, int a4, int a5,
                           int a6, int a7, int a8, int a9, int a10)
      #else
      int main(int argc, char *argv[])
      {
         return 0;
      }


      1. bss/test/bsscounter.c 
      2. bss/test/bssdriver.c 
      3. bss/test/bssrecv.c 
      4. bss/test/bssStreamingApp.c

        [cfdp] CCSDS File Delivery Protocol 

        provides unreliable transfer service and does not perform retransmission of lost data itself. It is at application service layer. CCSDS - Consultative Committee for Space Data Systems

        Details Description

         Here is the list of c files containing main() function. These c files are created their program in main directory (ION/ion-3.5.0) except tcputa.c
        1. cfdp/bp/bputa.c
        2. cfdp/daemon/cfdpclock.c
        3. cfdp/tcp/tcputa.c
        4. cfdp/test/cfdptest.c
        5. cfdp/utils/bpcp.c
        6. cfdp/utils/bpcpd.c
        7. cfdp/utils/cfdpadmin.c 
         
        #if defined (ION_LWT)
        int filename (int a1, int a2, int a3, int a4, int a5,
                             int a6, int a7, int a8, int a9, int a10)
        #else
        int main(int argc, char *argv[])
        {
           return 0;
        }

        for tcputa.c
        #if defined (VXWORKS) || defined (RTEMS) || defined (bionic)
        int    tcputa(int a1, int a2, int a3, int a4, int a5,
                int a6, int a7, int a8, int a9, int a10)
        {
        #else
        int    main(int argc, char **argv)
        {
            return 0;
        }

        [dgr] Datagram Retransmission

        It is an alternative implement of LTP. DGR is much closer to IP and IP-based works.
        DGR = LTP  = IP and other IP-based networks

        Details Description

        There are 6 .c files that contains main() function. Four of them do not have #if defined (ION_LWT) statement.

        1. dgr/test/dgr2file.c       
        2. dgr/test/file2dgr.c        
        3. dgr/test/file2tcp.c              only main without #if defined (ION_LWT)
        4. dgr/test/file2udp.c             only main without #if defined (ION_LWT)
        5. dgr/test/tcp2file.c              only main without #if defined (ION_LWT)
        6. dgr/test/udp2file.c             only main without #if defined (ION_LWT)
        #if defined (ION_LWT)
        int filename (int a1, int a2, int a3, int a4, int a5,
                             int a6, int a7, int a8, int a9, int a10)
        #else
        int main(int argc, char *argv[])
        {
           return 0;
        }


        [dtpc]

        Details Description

        There is 5 c files containing main() function, and they all use #if defined (ION_LWT).
        1. dtpc/daemon/dtpcclock.c 
        2. dtpc/daemon/dtpcd.c 
        3. dtpc/test/dtpcreceive.c 
        4. dtpc/test/dtpcsend.c 
        5. dtpc/utils/dtpcadmin.c    
        #if defined (ION_LWT)
        int filename (int a1, int a2, int a3, int a4, int a5,
                             int a6, int a7, int a8, int a9, int a10)
        #else
        int main(int argc, char *argv[])
        {
           return 0;
        }

         



        [ici] Interplanetary Communication Infrastructure

        provides a number of core services such as memory management, platform checking, inter-thread communication, zero-copy procedure, embedded diagnostic facility, performance monitor, and security, etc...

        Details Description

        There are many .c files containing main() function.

        1. ici/daemon/rfxclock.c 
        2. ici/daemon/winion.c                 main without #if defined (ION_LWT)
        3. ici/libbloom-master/test.c         main without #if defined (ION_LWT)
        4. ici/test/file2sdr.c        
        5. ici/test/file2sm.c        
        6. ici/test/owltsim.c           main without #if defined (ION_LWT)
        7. ici/test/owlttb.c              main without #if defined (ION_LWT)
        8. ici/test/psmshell.c       
        9. ici/test/sdr2file.c      
        10. ici/test/sm2file.c       
        11. ici/test/smlistsh.c       
        12. ici/test/smrbtsh.c       
        13. ici/util/ionadmin.c       
        14. ici/utils/ionexit.c       
        15. ici/utils/ionsecadmin.c       
        16. ici/utils/ionwarn.c       
        17. ici/utils/killm.c               main without #if defined (ION_LWT)
        18. ici/utils/psmwatch.c       
        19. ici/utils/sdrmend.c           
        20. ici/utils/sdrwatch.c       
        #if defined (ION_LWT)
        int filename (int a1, int a2, int a3, int a4, int a5,
                             int a6, int a7, int a8, int a9, int a10)
        #else
        int main(int argc, char *argv[])
        {
           return 0;
        }

         


        [ltp] Licklider Tranmission Protocol

        LTP provides flow control and retransmission-based reliability between topologically adjacent bundle protocol agents. It is a reliable convergence-layer protocol
        LTP = LLC (Logical Link Control) Protocol in the Internet architecture.

        Details Description

        There are many .c files containing main() function, and they all use #if defined (ION_LWT).
        1. ltp/aos/aoslsi.c 
        2. ltp/aos/aoslso.c 
        3. ltp/daemon/ltpclock.c 
        4. ltp/daemon/ltpmeter.c 
        5. ltp/dccp/dccplsi.c 
        6. ltp//dccp/dccplso.c 
        7. ltp/test/ltpcounter.c 
        8. ltp/test/ltpdriver.c 
        9. ltp/test/sdatest.c 
        10. ltp/udp/udplsi.c 
        11. ltp/udp/udpiso.c 
        12. ltp/utils/ltpadmin.c

        #if defined (ION_LWT)
        int filename (int a1, int a2, int a3, int a4, int a5,
                             int a6, int a7, int a8, int a9, int a10)
        #else
        int main(int argc, char *argv[])
        {
           return 0;
        }




        Protocol Structure in ION


        Relationship Between Folders in ION

        asdf