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

Overview

HS 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)

Feature table

FEATURE

DESCRIPTION

 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 No
 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
T11
T12
T13
T20
T20 Retry
T21
T22
T23
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

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.

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

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

HsX25 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 HsDL will need to be modified.


RFC1613 XOT and Proprietary XOT

HS 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.

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

API Summary

  • HsX25Init
  • HsX25Connect
  • HsX25Listen
  • HsX25Clear
  • HsX25Data
  • HsX25DataExp
  • HsX25ShutDown
  • HsX25Rnr
  • HsX25DecodePkt
  • HsX25GetStats
  • HsX25Tick

Roadmap

How do we plan to develop this product further:

  • Integrated PAD (Packet Assembler Dis-assembler) with following modes:
  • X.28 / X.3
  • Transparent mode
  • TPAD / Transactional Packet Assembler Dis-assembler (APACS, IBRO)
  • PVC support
  • LAPB protocol module as an option to operate instead of XOT
  • X.25 Call Router module

Release Notes

Version 1.2

  • base tested full release

Version 1.2.1

  • fixed handle leak in socket layer when closing and de-initialising the library

Version 1.2.2

  • changed interface to list library

Version 1.2.3

  • fixed issue with X.25 VC not clearing if remote host terminates abruptly.

Version 1.3.0

  • SVC / XOT outbound routing table to allow making X.25 calls over XOT (RFC1613) to multiple different IP hosts.
  • HsSock - socket interface module re-designed to use windows asynchronous sockets notifications processed in the main application message loop instead of thread based socket polling. As a result improved overall stack reliability and reduced CPU utilization for large number of connections
  • Improved operation in Proprietary XOT mode, support for running up to 10 independent X.25 links either TCP servers or clients in any combinations.
  • Fixed an issue in Proprietary XOT mode: DIAG packet not recognized as valid packet.
  • X.25 Link level statistics.