Home   Download   Order   Contact

SR X.25 C Source Library Demo Application

How It Works

When user application initlialises Hs X.25 library, it provides interface callbacks for the services used by HS X.25 protocol module: timer management, and event callbacks.

The application then calls HsX25 functions to establish virtual circuits, send and receive data, enforce flow control and clear calls.

SR X.25 internally at a lower layer interfaces to SrDL library. SrDL library is Data Link layer abstraction, which includes RFC1613 Cisco mode XOT (X.25 over TCP) sub-module. When SR X.25 is ported into environment with LAPB or LAPD as data link layer, only SrDL module needs to change.

SrDL links directly to HsSock module (also included in this package) - Winsock interface component that provides reliable TCP transport services similar to LAPB / LAPD / HDLC.

SR X25 as provided to customer may be used immediately in X.25 over TCP (Cisco XOT) solution or it may be used with traditional LAPB or LAPD in which case only SrDL will need to be modified.

API Summary
(NOTE: only some API functions are listed below.
See the user manual for a full list)

 SrX25Init Initializes SR X.25 Library - this function must be called first before any other functions are called. Init structure contains function pointers which must be initialised with function addresses in user space. SR X.25 module will call these functions when it needs to manage timers or feed events back to user
 SrX25Connect This function is called to initiate an outgoing X.25 SVC establishment
 SrX25Listen This function is called to listen for an incoming X.25 call
 SrX25Clear This function is called to Clear an X.25 SVC
 SrX25Data This function is called to send data over established X.25 VC
 SrX25DataExp This function is called to send expedited data over established X.25 VC. This function sends X.25 interrupt packet. An interrupt packet bypasses normal flow control mechanisms. Data is sent regardless of the state of the transmit window and no protocol variables are updated.
 SrX25ShutDown This function is used to close all X.25 links and release all resources used by SR X.25
 SrX25Rnr This function is used set flow control condition which shall result in X.25 stack sending RNR or RR. Flow control condition can be set to recover temporarily low receive buffer resources
 SrX25DecodePkt  This function may be used for debugging or diagnostics to decode the content of an X.25 packet
 SrX25GetStats This function is used to get X.25 VC statistics
 SrX25Tick This function must be called by user code as often as possible (from main loop or based on a fast timer). This function drives internal SR X.25 timers and services transmit queue.


How do we plan to develop this product further:

  • Integrated X.25 PAD (Packet Assembler Dis-assembler) with X.28 / X.3 or transparent
  • TPAD / Transactional Packet Assembler Dis-assembler (APACS, IBRO)
  • LAPB protocol module as an option to operate instead of XOT
  • X.25 Call Router module
  • Customers


    SR X.25 C Source Library (+ RFC1613 XOT)

    User Manual Download Evaluation Order Now


    SR X.25 is a software library in C (supplied with full source code) which implements ITU-T recommendation X.25 - Interface between Data Terminal Equipment (DTE) and Data Circuit-terminating Equipment (DCE) for terminals operating in the packet mode and connected to public data networks by dedicated circuit and RFC1613 Cisco Systems X.25 over TCP (XOT)

    SR X.25 C source library runs on Windows and on Unix (Linux, Solaris, HP-UX, RedHat, CentOS and others)

    SR X.25 supports both SVCs and PVCs over XOT

    Feature Table



     DCE Operation Yes
     DTE Operation Yes
     RFC1613 XOT Yes
     Maximum Number of VCs 4095
     Facilities Support Yes
     Call User Data supported Yes
     SVC Support Yes
     PVC Support Yes
     X.25 Version ITU-T (formerly CCITT) 10/96
     Outgoing Calls Yes
     Incoming Calls Yes
     Incoming Call processing  Configurable between: Match on local DTE address or Accept All Calls
     Packet Format Basic format, modulo 8
     Packet Size Configurable in range 128,256,512,1024 with 128 default
     Window Sizes Configurable from 1 to 7 with default of 2
     A Bit Basic format only (non TOA/NPI) addresses supported
     Q Bit procedure Yes
     M Bit procedure Yes
     D Bit procedure Yes
     Logical Channel Assignment Configurable Outgoing and Incoming range
     Timers and Counters Supported T10
    T20 Retry
    T23 Retry
     Interrupt packets Yes
     Trace Function Supported Yes
     Flow Control (RNR) Yes
     Per VC statistics Yes
     Per X.25 Link statistics Yes
     XOT outgoing call routing based called NUA Yes

    RFC1613 XOT and Proprietary XOT

    SR X.25 Library supports both Cisco RFC1613 mode XOT and Proprietary XOT.

    With RFC1613 the data link layer operates both as a server, always listening on port 1998 and a client making a separate TCP connection for each new outgoing call request, thus a total of 4095 TCP sessions can exits to carry 4095 VCs.

    With Proprietary XOT mode, a similar framing protocol is used on top of TCP/IP but the usage concept is different. An X.25 Link equal a single TCP session which can be either a TCP client or a TCP server. Remote IP addresses and port numbers and also the listening port numbers are configurable per X.25 link. There is currently a total of 10 X.25 links supported, meaning 10 TCP sessions. Each X.25 link can carry multiple X.25 VCs - up to 4095.

    SR X.25 Evaluation Pack includes demo applications which allow testing both of the above XOT modes of operation

    What is included:

     SR X.25 binaries
     SR X.25 full source code in C
     SR X.25 user manual and C demo examples
     Right of royalty free use
     Right of use within the company
     Right of use outside the company
     Right to distribute with company products
     Right to modify and make derivative works