Contents

X.25 Record Boundary Preservation for Data Communications Networks

Feature History

Release

Modification

12.2(8)T

This feature was introduced.

12.4(5th)T

Capability was added for conveying Q-bit data packets between X.25 and TCP/IP hosts.

This document describes the X.25 Record Boundary Preservation for Data Communications Networks feature in Cisco IOS Release 12.2(8)T. It includes the following sections:

Finding Feature Information

Your software release may not support all the features documented in this module. For the latest caveats and feature information, see Bug Search Tool and the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the feature information table at the end of this module.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/​go/​cfn. An account on Cisco.com is not required.

Feature Overview

The X.25 Record Boundary Preservation for Data Communications Networks feature enables hosts using TCP/IP-based protocols to exchange data with devices that use the X.25 protocol, retaining the logical record boundaries indicated by use of the X.25 "more data" bit (M-bit).

When to Use Record Boundary Preservation

Before the introduction of the X.25 Record Boundary Preservation for Data Communications Networks feature, Cisco IOS software provided two methods for enabling the exchange of data between X.25 hosts and hosts using TCP/IP-based protocols: protocol translation and X.25 over TCP (XOT). Protocol translation supports a variety of configurations, including translation of a data stream between an X.25 circuit that is using X.29 and a TCP session. The X.29 protocol is an integral part of protocol translation. One aspect of X.29 is that it is asymmetric and allows the packaging of data into X.25 packets to be controlled in one direction only. The TCP protocol is stream-oriented, rather than packet-oriented. TCP does not attach significance to TCP datagram boundaries, and those boundaries can change when a datagram is retransmitted. This inability to preserve boundaries makes protocol translation appropriate only for configurations in which the X.25 packet boundary is not significant.

The XOT feature allows X.25 packets to be forwarded over a TCP session. This allows full control over the X.25 circuit, but the host terminating the TCP session must implement the XOT protocol and the X.25 packet layer protocol.

The Record Boundary Preservation (RBP) feature offers a solution positioned between these two options: it allows logical message boundaries to be indicated without requiring the TCP host to be aware of X.25 protocol details.

How Record Boundary Preservation Works

The TCP protocol does not attach significance to datagram boundaries, so a protocol must be layered over a TCP session to convey record boundary information. The Record Boundary Preservation protocol implements a 6-byte record header that specifies the amount of data following and indicates whether that data should be considered the final part of a logical record. Table 1 describes the format and contents of the record header.

Table 1 Record Header Format

Byte

Description

Byte 0

Protocol identifier. This byte must contain the value 0xD7.

Byte 1

Protocol identifier. This byte must contain the value 0x4A.

Bytes 2 and 3

Payload length, in bytes, not including the header. Byte 2 contains the most significant byte of the length; byte 3 contains the least significant byte.

Byte 4

"More data" flag. This byte must contain one of the following values:

  • 0x00--Indicates that this record is the final part of the data unit.
  • 0x01--Indicates that this record is not the final part of the data unit.

Byte 5

Must contain the value 0x00.

When a router configured with RBP receives an X.25 call that matches a configured X.25 RBP map, the router attempts to open a TCP connection to the specified TCP destination. Each TCP session is mapped to one X.25 virtual circuit. If the TCP session is established, then X.25 data packets received from the caller are combined into logical records as indicated by use of the X.25 M-bit, and the contents of the data packets are forwarded to the TCP destination. The boundaries of these records are preserved by the record header.

The router will not split an X.25 data packet across multiple records unless the data packet exceeds the configured maximum record size; however, TCP will segment the data stream at arbitrary byte boundaries in accordance with TCP specifications.

X.25 data packets with the M-bit set may be combined as long as the resulting record does not exceed the configured maximum record size or, if a maximum record size was not configured, the maximum datagram size for the X.25 interface. The "more data" flag in the record header will reflect the value of the M-bit in the final X.25 data packet. This process of combining packets results in a series of zero or more records whose "more data" flag is set to the value 1 followed by a record whose "more data" flag is set to 0.

Incoming X.25 calls with the "delivery confirmation" bit (D-bit) set will be answered with the D-bit set. However, since the router is the endpoint of the X.25 circuit, X.25 data packets will be acknowledged as soon as their contents have been passed to the TCP connection without waiting for an acknowledgment for the TCP data, regardless of the value of the D-bit. TCP data will be acknowledged as soon as it has been converted to X.25 data packets.

The router will not send Receiver Not Ready (RNR) packets on the X.25 circuit; flow control will be accomplished by withholding acknowledgment.

The following situations will cause the X.25 circuit to be cleared (for an SVC) or reset (for a PVC) and the TCP connection to be closed: receipt of a data packet with the "qualified" bit (Q-bit) set; receipt of any packet type other than data, Receiver Ready (RR), or RNR; or a restart or lower-layer reset on the X.25 interface. When the circuit is cleared or reset, any data not yet passed to the TCP connection will be discarded.

When the router receives the records from the TCP session, it strips the record header and, on the basis of the information in the record header, reassembles the records into X.25 data packets. The data is interpreted as a fixed-length header followed by a variable-length payload whose length is specified in the record header. If the protocol ID or flag field in the header is invalid, the TCP connection will be closed and the X.25 circuit will be cleared or reset. The payload length may be greater than the X.25 packet size and need not be a multiple of the X.25 packet size.

A record that has the "more data" flag set will be logically combined with following records until a record that has the "more data" flag cleared is received. This process results in a sequence of maximum-sized X.25 data packets, each with the M-bit set, followed by an X.25 data packet containing the remaining data that does not have the M-bit set. The router will not wait for an entire record to be received before sending a maximum-size X.25 data packet.

As the records are reassembled into X.25 data packets, the packets are forwarded to the corresponding X.25 circuit.

The router will not set the D-bit or Q-bit on X.25 data packets being sent over circuits that are configured with RBP.

Data received by a router from a TCP session will be buffered while waiting for the other connection to be established. If the connection attempt fails, the data will be discarded. When a TCP connection is closed, the X.25 circuit will be cleared or reset, and any data not yet sent on the X.25 circuit will be discarded.

Benefits

The X.25 Record Boundary Preservation for Data Communications Networks feature enables X.25 and TCP/IP hosts to exchange data while preserving X.25 packet boundaries and without having to carry the full X.25 protocol over the TCP session.

Restrictions

  • X.25 connections will be supported over leased-line X.25 interfaces only.
  • Only the contents of the X.25 data packets and the record boundary information defined by the X.25 M-bit are conveyed to the TCP session. The contents of the X.25 call packet are used only to identify the corresponding x25 map rbp command; information from the call packet is not otherwise forwarded to the TCP host.
  • When the X.25 circuit is cleared or reset, the X.25 cause and diagnostic codes are not forwarded to the TCP host.
  • The call user data specified in incoming or outgoing calls must not conflict with protocol ID values recognized by the router.

Related Documents

For more information about configuring X.25 networks, refer to the following documents:

  • The chapter "Configuring X.25 and LAPB" in the Cisco IOS Wide-Area Networking Configuration Guide , Release 12.2
  • The section "X.25 and LAPB Commands" in the Cisco IOS Wide-Area Networking Command Reference , Release 12.2

Supported Standards and MIBs and RFCs

Standards

No new or modified standards are supported by this feature.

MIBs

No new or modified MIBs are supported by this feature.

To obtain lists of supported MIBs by platform and Cisco IOS release, and to download MIB modules, go to the Cisco MIB website on Cisco.com at the following URL:

http:/​/​www.cisco.com/​public/​sw-center/​netmgmt/​cmtk/​mibs.shtml

RFCs

No new or modified RFCs are supported by this feature.

Prerequisites

Documentation of the configuration tasks in this document assumes that you know how to configure X.25 networks.

Configuration Tasks

Configuring a PVC to Use RBP for Incoming X.25 Connections

To configure the router to establish a TCP session in response to data received on an X.25 PVC and to use RBP protocol to transfer data between the X.25 host and the TCP session, use the following command in interface configuration mode:

Command

Purpose

Router(config-if)# x25 pvc circuit rbp remote host ip-address port port [packetsize in-size out-size] [source-interface interface] [recordsize size] [windowsize in-size out-size]

Configures the router to establish a TCP session in response to data received on an X.25 PVC and to use RBP protocol to transfer data between the X.25 host and the TCP session.

  • When a PVC is configured to use RBP, the VC must be unique. Multiple commands referencing the same VC (matching logical channel identifier and interface) are not permitted.

When the x25 pvc rbp remote command is configured, the router will wait until a data packet is received on the specified X.25 PVC; in the meantime, the router will acknowledge any X.25 reset packets on the circuit. When a data packet is received, the router will attempt to establish a TCP connection to the configured IP address and TCP port, using a dynamically assigned local TCP port number. If the connection attempt fails, the router will reset the permanent virtual circuit and will wait for another data packet before attempting to establish the TCP connection. Since this command is associated with a specific X.25 circuit, at most one connection may be active per command.

Configuring SVCs to Use RBP for Incoming X.25 Connections

To configure the router to establish TCP sessions in response to incoming X.25 calls, and to use RBP to transfer data between the X.25 circuit and the corresponding TCP session, use the following command in interface configuration mode:

Command

Purpose

Router(config-if)# x25 map rbp x121-address [cud  string] remote host ip-address port port [accept-reverse] [recordsize size] [source-interface interface] 

Configures the router to establish TCP sessions in response to incoming X.25 calls and to use RBP to transfer data between the X.25 circuit and the corresponding TCP session.

When the x25 map rbp remote command is configured, the router will accept an incoming X.25 call if the destination address matches an X.25 address configured on the interface on which the call is received, and if the calling address and call user data matches the configured value. When the call is accepted, the router will attempt to open a TCP connection to the configured IP address and TCP port, using a dynamically assigned local TCP port number. If the TCP connection cannot be opened, the X.25 call will be cleared. The number of X.25 calls that may be accepted is limited only by router resources. No information from the X.25 call packet is provided to the TCP/IP host.

Configuring a PVC to Use RBP for Incoming TCP Connections

To configure the router to accept an incoming TCP connection on a specified TCP port, and to use RBP over that session to transfer data between the TCP host and an X.25 PVC, use the following command in interface configuration mode:

Command

Purpose

Router(config-if)# x25 pvc circuit rbp local port port [packetsize in-size out-size] [recordsize size] [windowsize in-size out-size]

Configures the router to establish a TCP session to a specified TCP host and port in response to incoming data on an X.25 PVC and to use the RBP protocol over that TCP session to transfer data between the TCP host and the X.25 PVC.

  • The local TCP port number must be unique, with the exception that the same TCP port number may be configured once on each of multiple X.25 interfaces that will not be active simultaneously; this includes the case in which one X.25 interface is configured as a backup interface for another X.25 interface.
  • When a PVC is configured to use RBP, the VC must be unique. Multiple commands referencing the same VC (matching logical channel identifier and interface) are not permitted.

When the x25 pvc rbp local command is configured, the router will listen for a TCP connection request to the configured TCP port. Until the connection request is received, any data packets received on the X.25 PVC will cause the PVC to be reset. When the TCP connection request is received, the connection will be accepted, and the router will send an X.25 reset packet over the configured X.25 destination circuit. If the reset packet is not acknowledged, the TCP connection will be closed. Since this command is associated with a specific X.25 circuit, only one connection may be active per command.

Configuring SVCs to Use RBP for Incoming TCP Connections

To configure the router to establish X.25 circuits in response to incoming TCP connections, and to use RBP to transfer data between the TCP session and the corresponding X.25 circuit, use the following command in interface configuration mode:

Command

Purpose

Router(config-if)# x25 map rbp x121-address [cud string] local port port [cug group-number] [packetsize in-size out-size] [recordsize size] [reverse] [roa name] [throughput in out] [transit-delay milliseconds] [windowsize in-size out-size] 

Configures the router to establish X.25 circuits in response to incoming TCP connections on a specified TCP port and to use RBP to transfer data between the TCP session and the corresponding X.25 circuit.

  • The local TCP port number must be unique, with the exception that the same TCP port number may be configured once on each of multiple X.25 interfaces that will not be active simultaneously; this includes the case in which one X.25 interface is configured as a backup interface for another X.25 interface.

When the x25 map rbp local port command is configured, the router will listen for a TCP connection request to the configured TCP port. When the connection is accepted, the router will place an X.25 call using the configured X.25 destination interface, destination address, and call user data. If the call is not successfully completed, the TCP connection will be closed. The number of connections that may be established to the TCP port is limited only by router resources. No information from the TCP connection is included in the X.25 call packet sent to the X.25 host.

Verifying Record Boundary Preservation

To verify that RBP connections are configured and performing correctly, complete the following steps.

SUMMARY STEPS

    1.    Enter the show x25 map command to display information about the configured address maps.

    2.    Enter the show x25 vc command to display information about configured SVCs and PVCs.

    3.    Enter the show tcp command to display the status of TCP connections.


DETAILED STEPS
    Step 1   Enter the show x25 map command to display information about the configured address maps.

    The following is sample output of the show x25 map command for a router that is configured with RBP using the x25 pvc rbp remote command:



    Example:
    Router# show x25 map
    Serial1/0:-> rbp, destination host 10.0.0.33 port 9999
      PVC, 1 VC:1/P
    

    The following is sample output of the show x25 map command for a router that is configured with RBP using the x25 map rbp remote command:



    Example:
    Router# show x25 map
    Serial3/0:12132 -> rbp, destination host 10.0.0.32 port 9999
      permanent, 1 VC:1024
    

    The following is sample output of the show x25 map command for a router that is configured with RBP using the x25 pvc rbp local command:



    Example:
    Router# show x25 map
    Serial3/0:<- rbp, listening at port 9999
      PVC, 1 VC:2/P
    

    The following is sample output of the show x25 map command for a router that is configured with RBP using the x25 map rbp local command:



    Example:
    Router# show x25 map
    Serial1/0:12131 <- rbp, listening at port 9999
      permanent, 1 VC:1
    

    For descriptions of the show x25 map display fields, see the show x25 map command page later in this document.

    Step 2   Enter the show x25 vc command to display information about configured SVCs and PVCs.

    The following is sample output of the show x25 vc command for a PVC configured with record boundary preservation:



    Example:
    Router# show x25 vc
    
    PVC 2,  State:D1,  Interface:Serial3/0
      Started 00:08:08, last input 00:00:01, output 00:00:01
      recordsize:1500, connected
      local address 10.0.0.1 port 9999; remote address 10.0.0.5 port 11029
      deferred ack:1
      Window size input:2, output:2
      Packet size input:128, output:128
      PS:2  PR:2  ACK:1  Remote PR:2  RCNT:1  RNR:no
      P/D state timeouts:0  timer (secs):0
      data bytes 8000/8000 packets 80/80 Resets 9/0 RNRs 0/0 REJs 0/0 INTs 0/0
    

    For descriptions of the show x25 pvc display fields, see the show x25 vc command page later in this document.



    Example:
    
    
            
    Step 3   Enter the show tcp command to display the status of TCP connections.

    The following is sample output of the show tcp command:



    Example:
    Router# show tcp
    Stand-alone TCP connection from host 10.0.0.5
    Connection state is ESTAB, I/O status:1, unread input bytes:0
    Local host:10.0.0.1, Local port:9999
    Foreign host:10.0.0.5, Foreign port:11003
    Enqueued packets for retransmit:0, input:0  mis-ordered:0 (0 bytes)
    TCP driver queue size 0, flow controlled FALSE
    Event Timers (current time is 0x1D0CF8):
    Timer          Starts    Wakeups            Next
    Retrans            11          0             0x0
    TimeWait            0          0             0x0
    AckHold            10          0             0x0
    SendWnd             0          0             0x0
    KeepAlive          20          0        0x1DF68C
    GiveUp              0          0             0x0
    PmtuAger            0          0             0x0
    DeadWait            0          0             0x0
    iss:2946187848  snduna:2946188909  sndnxt:2946188909     sndwnd:  7132
    irs:1353667951  rcvnxt:1353669012  rcvwnd:      7132  delrcvwnd:  1060
    SRTT:231 ms, RTTO:769 ms, RTV:538 ms, KRTT:0 ms
    minRTT:0 ms, maxRTT:300 ms, ACK hold:200 ms
    Flags:passive open, retransmission timeout, keepalive running
      gen tcbs
    Datagrams (max data segment is 1460 bytes):
    Rcvd:22 (out of order:0), with data:10, total data bytes:1060
    Sent:21 (retransmit:0, fastretransmit:0), with data:10, total data bytes:1060

    Monitoring and Maintaining RBP

    To monitor RBP, use the following command in privileged EXEC mode:

    Command

    Purpose

    Router# debug x25 

    Displays information about X.25 traffic.

    Configuration Examples

    PVC Configured to Use RBP for Incoming X.25 Connections Example

    In the following example, when PVC 1 receives a data packet from the X.25 host, the router will attempt to establish a TCP connection to port 9999 at the TCP/IP host that has the IP address 10.0.0.1.

    Interface Serial1/0
     encapsulation x25 
     x25 pvc 1 rbp remote host 10.0.0.1 port 9999

    SVCs Configured to Use RBP for Incoming X.25 Connections Example

    In the following example, if serial interface 1/0 receives an X.25 call from 12132, the router will map the call and open a TCP connection to port number 9999 at the remote TCP/IP host that has the IP address 10.0.0.1.

    interface Serial1/0
     encapsulation x25 dce
     x25 address 12030
     x25 map rbp 12132 remote host 10.0.0.1 port 9999

    PVC Configured to Use RBP for Incoming TCP Connections Example

    In the following example, the router is configured to listen for a TCP connection request on port 9999. When a TCP connection is established, the router will send an X.25 reset over the configured X.25 destination circuit.

    Interface serial2/1
     encapsulation x25
     x25 pvc 2 rbp local port 9999

    SVCs Configured to Use RBP for Incoming TCP Connections Example

    In the following example, if the router receives a request for a TCP connection at port 9999, the router will make an X.25 call with no call user data to address 12131.

    interface Serial1/0
     encapsulation x25 dce
     x25 address 13133
     x25 map rbp 12131 local port 9999

    Glossary

    CUD --call user data. Field in an X.25 data packet that contains encapsulated upper-layer information.

    CUG --closed user group. A collection of DTE devices for which the network controls access among members and between members and nonmembers. A DTE may subscribe to zero, one, or more CUGs. A DTE that does not subscribe to a CUG is referred to as being in the open part of the network.

    D-bit --"delivery confirmation" bit. Data packet flag used to request end-to-end acknowledgment for the packet.

    DCE --data communications equipment. Devices and connections of a communications network that make up the network end of the user-to-network interface. The DCE provides a physical connection to the network, forwards traffic, and provides a clocking signal used to synchronize data transmission between DCE and DTE devices. Modems and interface cards are examples of DCE.

    DTE --data terminal equipment. Device at the user end of a user-network interface that serves as a data source, destination, or both. DTE connects to a data network through a DCE device (for example, a modem) and typically uses clocking signals generated by the DCE. DTE includes such devices as computers, protocol translators, and multiplexers.

    local acknowledgment --Method whereby a switch acknowledges a received data packet before it has received acknowledgment of the data from the next hop.

    M-Bit --"more data" bit. Data packet flag that indicates that at least one more data packet is required for completion of a message of contiguous data.

    PVC --permanent virtual circuit. Virtual circuit that is permanently established.

    Q-bit--"qualified" bit. Data packet flag that signifies that the packet’s user data is a control signal for the remote device, not a message for the user.

    RBP--record boundary preservation. Protocol that defines a way for hosts using TCP/IP-based protocols to exchange data with devices that use the X.25 protocol, preserving the logical record boundaries conveyed by the X.25 M-bit ("more data" bit).

    SVC --switched virtual circuit. Virtual circuit that is dynamically established on demand and is torn down when transmission is complete. SVCs are used in situations in which data transmission is sporadic.

    X.121 --ITU-T standard describing an addressing scheme used in X.25 networks. Sometimes called the X.25 address.

    X.25 -- ITU-T standard that defines how connections between DTE and DCE are maintained for remote terminal access and computer communications in PDNs. X.25 specifies LAPB, a data-link layer protocol, and PLP, a network layer protocol.

    XOT --X.25 over TCP.


    X.25 Record Boundary Preservation for Data Communications Networks

    Contents

    X.25 Record Boundary Preservation for Data Communications Networks

    Feature History

    Release

    Modification

    12.2(8)T

    This feature was introduced.

    12.4(5th)T

    Capability was added for conveying Q-bit data packets between X.25 and TCP/IP hosts.

    This document describes the X.25 Record Boundary Preservation for Data Communications Networks feature in Cisco IOS Release 12.2(8)T. It includes the following sections:

    Finding Feature Information

    Your software release may not support all the features documented in this module. For the latest caveats and feature information, see Bug Search Tool and the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the feature information table at the end of this module.

    Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/​go/​cfn. An account on Cisco.com is not required.

    Feature Overview

    The X.25 Record Boundary Preservation for Data Communications Networks feature enables hosts using TCP/IP-based protocols to exchange data with devices that use the X.25 protocol, retaining the logical record boundaries indicated by use of the X.25 "more data" bit (M-bit).

    When to Use Record Boundary Preservation

    Before the introduction of the X.25 Record Boundary Preservation for Data Communications Networks feature, Cisco IOS software provided two methods for enabling the exchange of data between X.25 hosts and hosts using TCP/IP-based protocols: protocol translation and X.25 over TCP (XOT). Protocol translation supports a variety of configurations, including translation of a data stream between an X.25 circuit that is using X.29 and a TCP session. The X.29 protocol is an integral part of protocol translation. One aspect of X.29 is that it is asymmetric and allows the packaging of data into X.25 packets to be controlled in one direction only. The TCP protocol is stream-oriented, rather than packet-oriented. TCP does not attach significance to TCP datagram boundaries, and those boundaries can change when a datagram is retransmitted. This inability to preserve boundaries makes protocol translation appropriate only for configurations in which the X.25 packet boundary is not significant.

    The XOT feature allows X.25 packets to be forwarded over a TCP session. This allows full control over the X.25 circuit, but the host terminating the TCP session must implement the XOT protocol and the X.25 packet layer protocol.

    The Record Boundary Preservation (RBP) feature offers a solution positioned between these two options: it allows logical message boundaries to be indicated without requiring the TCP host to be aware of X.25 protocol details.

    How Record Boundary Preservation Works

    The TCP protocol does not attach significance to datagram boundaries, so a protocol must be layered over a TCP session to convey record boundary information. The Record Boundary Preservation protocol implements a 6-byte record header that specifies the amount of data following and indicates whether that data should be considered the final part of a logical record. Table 1 describes the format and contents of the record header.

    Table 1 Record Header Format

    Byte

    Description

    Byte 0

    Protocol identifier. This byte must contain the value 0xD7.

    Byte 1

    Protocol identifier. This byte must contain the value 0x4A.

    Bytes 2 and 3

    Payload length, in bytes, not including the header. Byte 2 contains the most significant byte of the length; byte 3 contains the least significant byte.

    Byte 4

    "More data" flag. This byte must contain one of the following values:

    • 0x00--Indicates that this record is the final part of the data unit.
    • 0x01--Indicates that this record is not the final part of the data unit.

    Byte 5

    Must contain the value 0x00.

    When a router configured with RBP receives an X.25 call that matches a configured X.25 RBP map, the router attempts to open a TCP connection to the specified TCP destination. Each TCP session is mapped to one X.25 virtual circuit. If the TCP session is established, then X.25 data packets received from the caller are combined into logical records as indicated by use of the X.25 M-bit, and the contents of the data packets are forwarded to the TCP destination. The boundaries of these records are preserved by the record header.

    The router will not split an X.25 data packet across multiple records unless the data packet exceeds the configured maximum record size; however, TCP will segment the data stream at arbitrary byte boundaries in accordance with TCP specifications.

    X.25 data packets with the M-bit set may be combined as long as the resulting record does not exceed the configured maximum record size or, if a maximum record size was not configured, the maximum datagram size for the X.25 interface. The "more data" flag in the record header will reflect the value of the M-bit in the final X.25 data packet. This process of combining packets results in a series of zero or more records whose "more data" flag is set to the value 1 followed by a record whose "more data" flag is set to 0.

    Incoming X.25 calls with the "delivery confirmation" bit (D-bit) set will be answered with the D-bit set. However, since the router is the endpoint of the X.25 circuit, X.25 data packets will be acknowledged as soon as their contents have been passed to the TCP connection without waiting for an acknowledgment for the TCP data, regardless of the value of the D-bit. TCP data will be acknowledged as soon as it has been converted to X.25 data packets.

    The router will not send Receiver Not Ready (RNR) packets on the X.25 circuit; flow control will be accomplished by withholding acknowledgment.

    The following situations will cause the X.25 circuit to be cleared (for an SVC) or reset (for a PVC) and the TCP connection to be closed: receipt of a data packet with the "qualified" bit (Q-bit) set; receipt of any packet type other than data, Receiver Ready (RR), or RNR; or a restart or lower-layer reset on the X.25 interface. When the circuit is cleared or reset, any data not yet passed to the TCP connection will be discarded.

    When the router receives the records from the TCP session, it strips the record header and, on the basis of the information in the record header, reassembles the records into X.25 data packets. The data is interpreted as a fixed-length header followed by a variable-length payload whose length is specified in the record header. If the protocol ID or flag field in the header is invalid, the TCP connection will be closed and the X.25 circuit will be cleared or reset. The payload length may be greater than the X.25 packet size and need not be a multiple of the X.25 packet size.

    A record that has the "more data" flag set will be logically combined with following records until a record that has the "more data" flag cleared is received. This process results in a sequence of maximum-sized X.25 data packets, each with the M-bit set, followed by an X.25 data packet containing the remaining data that does not have the M-bit set. The router will not wait for an entire record to be received before sending a maximum-size X.25 data packet.

    As the records are reassembled into X.25 data packets, the packets are forwarded to the corresponding X.25 circuit.

    The router will not set the D-bit or Q-bit on X.25 data packets being sent over circuits that are configured with RBP.

    Data received by a router from a TCP session will be buffered while waiting for the other connection to be established. If the connection attempt fails, the data will be discarded. When a TCP connection is closed, the X.25 circuit will be cleared or reset, and any data not yet sent on the X.25 circuit will be discarded.

    Benefits

    The X.25 Record Boundary Preservation for Data Communications Networks feature enables X.25 and TCP/IP hosts to exchange data while preserving X.25 packet boundaries and without having to carry the full X.25 protocol over the TCP session.

    Restrictions

    • X.25 connections will be supported over leased-line X.25 interfaces only.
    • Only the contents of the X.25 data packets and the record boundary information defined by the X.25 M-bit are conveyed to the TCP session. The contents of the X.25 call packet are used only to identify the corresponding x25 map rbp command; information from the call packet is not otherwise forwarded to the TCP host.
    • When the X.25 circuit is cleared or reset, the X.25 cause and diagnostic codes are not forwarded to the TCP host.
    • The call user data specified in incoming or outgoing calls must not conflict with protocol ID values recognized by the router.

    Related Documents

    For more information about configuring X.25 networks, refer to the following documents:

    • The chapter "Configuring X.25 and LAPB" in the Cisco IOS Wide-Area Networking Configuration Guide , Release 12.2
    • The section "X.25 and LAPB Commands" in the Cisco IOS Wide-Area Networking Command Reference , Release 12.2

    Supported Standards and MIBs and RFCs

    Standards

    No new or modified standards are supported by this feature.

    MIBs

    No new or modified MIBs are supported by this feature.

    To obtain lists of supported MIBs by platform and Cisco IOS release, and to download MIB modules, go to the Cisco MIB website on Cisco.com at the following URL:

    http:/​/​www.cisco.com/​public/​sw-center/​netmgmt/​cmtk/​mibs.shtml

    RFCs

    No new or modified RFCs are supported by this feature.

    Prerequisites

    Documentation of the configuration tasks in this document assumes that you know how to configure X.25 networks.

    Configuration Tasks

    Configuring a PVC to Use RBP for Incoming X.25 Connections

    To configure the router to establish a TCP session in response to data received on an X.25 PVC and to use RBP protocol to transfer data between the X.25 host and the TCP session, use the following command in interface configuration mode:

    Command

    Purpose

    Router(config-if)# x25 pvc circuit rbp remote host ip-address port port [packetsize in-size out-size] [source-interface interface] [recordsize size] [windowsize in-size out-size]

    Configures the router to establish a TCP session in response to data received on an X.25 PVC and to use RBP protocol to transfer data between the X.25 host and the TCP session.

    • When a PVC is configured to use RBP, the VC must be unique. Multiple commands referencing the same VC (matching logical channel identifier and interface) are not permitted.

    When the x25 pvc rbp remote command is configured, the router will wait until a data packet is received on the specified X.25 PVC; in the meantime, the router will acknowledge any X.25 reset packets on the circuit. When a data packet is received, the router will attempt to establish a TCP connection to the configured IP address and TCP port, using a dynamically assigned local TCP port number. If the connection attempt fails, the router will reset the permanent virtual circuit and will wait for another data packet before attempting to establish the TCP connection. Since this command is associated with a specific X.25 circuit, at most one connection may be active per command.

    Configuring SVCs to Use RBP for Incoming X.25 Connections

    To configure the router to establish TCP sessions in response to incoming X.25 calls, and to use RBP to transfer data between the X.25 circuit and the corresponding TCP session, use the following command in interface configuration mode:

    Command

    Purpose

    Router(config-if)# x25 map rbp x121-address [cud  string] remote host ip-address port port [accept-reverse] [recordsize size] [source-interface interface] 

    Configures the router to establish TCP sessions in response to incoming X.25 calls and to use RBP to transfer data between the X.25 circuit and the corresponding TCP session.

    When the x25 map rbp remote command is configured, the router will accept an incoming X.25 call if the destination address matches an X.25 address configured on the interface on which the call is received, and if the calling address and call user data matches the configured value. When the call is accepted, the router will attempt to open a TCP connection to the configured IP address and TCP port, using a dynamically assigned local TCP port number. If the TCP connection cannot be opened, the X.25 call will be cleared. The number of X.25 calls that may be accepted is limited only by router resources. No information from the X.25 call packet is provided to the TCP/IP host.

    Configuring a PVC to Use RBP for Incoming TCP Connections

    To configure the router to accept an incoming TCP connection on a specified TCP port, and to use RBP over that session to transfer data between the TCP host and an X.25 PVC, use the following command in interface configuration mode:

    Command

    Purpose

    Router(config-if)# x25 pvc circuit rbp local port port [packetsize in-size out-size] [recordsize size] [windowsize in-size out-size]

    Configures the router to establish a TCP session to a specified TCP host and port in response to incoming data on an X.25 PVC and to use the RBP protocol over that TCP session to transfer data between the TCP host and the X.25 PVC.

    • The local TCP port number must be unique, with the exception that the same TCP port number may be configured once on each of multiple X.25 interfaces that will not be active simultaneously; this includes the case in which one X.25 interface is configured as a backup interface for another X.25 interface.
    • When a PVC is configured to use RBP, the VC must be unique. Multiple commands referencing the same VC (matching logical channel identifier and interface) are not permitted.

    When the x25 pvc rbp local command is configured, the router will listen for a TCP connection request to the configured TCP port. Until the connection request is received, any data packets received on the X.25 PVC will cause the PVC to be reset. When the TCP connection request is received, the connection will be accepted, and the router will send an X.25 reset packet over the configured X.25 destination circuit. If the reset packet is not acknowledged, the TCP connection will be closed. Since this command is associated with a specific X.25 circuit, only one connection may be active per command.

    Configuring SVCs to Use RBP for Incoming TCP Connections

    To configure the router to establish X.25 circuits in response to incoming TCP connections, and to use RBP to transfer data between the TCP session and the corresponding X.25 circuit, use the following command in interface configuration mode:

    Command

    Purpose

    Router(config-if)# x25 map rbp x121-address [cud string] local port port [cug group-number] [packetsize in-size out-size] [recordsize size] [reverse] [roa name] [throughput in out] [transit-delay milliseconds] [windowsize in-size out-size] 

    Configures the router to establish X.25 circuits in response to incoming TCP connections on a specified TCP port and to use RBP to transfer data between the TCP session and the corresponding X.25 circuit.

    • The local TCP port number must be unique, with the exception that the same TCP port number may be configured once on each of multiple X.25 interfaces that will not be active simultaneously; this includes the case in which one X.25 interface is configured as a backup interface for another X.25 interface.

    When the x25 map rbp local port command is configured, the router will listen for a TCP connection request to the configured TCP port. When the connection is accepted, the router will place an X.25 call using the configured X.25 destination interface, destination address, and call user data. If the call is not successfully completed, the TCP connection will be closed. The number of connections that may be established to the TCP port is limited only by router resources. No information from the TCP connection is included in the X.25 call packet sent to the X.25 host.

    Verifying Record Boundary Preservation

    To verify that RBP connections are configured and performing correctly, complete the following steps.

    SUMMARY STEPS

      1.    Enter the show x25 map command to display information about the configured address maps.

      2.    Enter the show x25 vc command to display information about configured SVCs and PVCs.

      3.    Enter the show tcp command to display the status of TCP connections.


    DETAILED STEPS
      Step 1   Enter the show x25 map command to display information about the configured address maps.

      The following is sample output of the show x25 map command for a router that is configured with RBP using the x25 pvc rbp remote command:



      Example:
      Router# show x25 map
      Serial1/0:-> rbp, destination host 10.0.0.33 port 9999
        PVC, 1 VC:1/P
      

      The following is sample output of the show x25 map command for a router that is configured with RBP using the x25 map rbp remote command:



      Example:
      Router# show x25 map
      Serial3/0:12132 -> rbp, destination host 10.0.0.32 port 9999
        permanent, 1 VC:1024
      

      The following is sample output of the show x25 map command for a router that is configured with RBP using the x25 pvc rbp local command:



      Example:
      Router# show x25 map
      Serial3/0:<- rbp, listening at port 9999
        PVC, 1 VC:2/P
      

      The following is sample output of the show x25 map command for a router that is configured with RBP using the x25 map rbp local command:



      Example:
      Router# show x25 map
      Serial1/0:12131 <- rbp, listening at port 9999
        permanent, 1 VC:1
      

      For descriptions of the show x25 map display fields, see the show x25 map command page later in this document.

      Step 2   Enter the show x25 vc command to display information about configured SVCs and PVCs.

      The following is sample output of the show x25 vc command for a PVC configured with record boundary preservation:



      Example:
      Router# show x25 vc
      
      PVC 2,  State:D1,  Interface:Serial3/0
        Started 00:08:08, last input 00:00:01, output 00:00:01
        recordsize:1500, connected
        local address 10.0.0.1 port 9999; remote address 10.0.0.5 port 11029
        deferred ack:1
        Window size input:2, output:2
        Packet size input:128, output:128
        PS:2  PR:2  ACK:1  Remote PR:2  RCNT:1  RNR:no
        P/D state timeouts:0  timer (secs):0
        data bytes 8000/8000 packets 80/80 Resets 9/0 RNRs 0/0 REJs 0/0 INTs 0/0
      

      For descriptions of the show x25 pvc display fields, see the show x25 vc command page later in this document.



      Example:
      
      
              
      Step 3   Enter the show tcp command to display the status of TCP connections.

      The following is sample output of the show tcp command:



      Example:
      Router# show tcp
      Stand-alone TCP connection from host 10.0.0.5
      Connection state is ESTAB, I/O status:1, unread input bytes:0
      Local host:10.0.0.1, Local port:9999
      Foreign host:10.0.0.5, Foreign port:11003
      Enqueued packets for retransmit:0, input:0  mis-ordered:0 (0 bytes)
      TCP driver queue size 0, flow controlled FALSE
      Event Timers (current time is 0x1D0CF8):
      Timer          Starts    Wakeups            Next
      Retrans            11          0             0x0
      TimeWait            0          0             0x0
      AckHold            10          0             0x0
      SendWnd             0          0             0x0
      KeepAlive          20          0        0x1DF68C
      GiveUp              0          0             0x0
      PmtuAger            0          0             0x0
      DeadWait            0          0             0x0
      iss:2946187848  snduna:2946188909  sndnxt:2946188909     sndwnd:  7132
      irs:1353667951  rcvnxt:1353669012  rcvwnd:      7132  delrcvwnd:  1060
      SRTT:231 ms, RTTO:769 ms, RTV:538 ms, KRTT:0 ms
      minRTT:0 ms, maxRTT:300 ms, ACK hold:200 ms
      Flags:passive open, retransmission timeout, keepalive running
        gen tcbs
      Datagrams (max data segment is 1460 bytes):
      Rcvd:22 (out of order:0), with data:10, total data bytes:1060
      Sent:21 (retransmit:0, fastretransmit:0), with data:10, total data bytes:1060

      Monitoring and Maintaining RBP

      To monitor RBP, use the following command in privileged EXEC mode:

      Command

      Purpose

      Router# debug x25 

      Displays information about X.25 traffic.

      Configuration Examples

      PVC Configured to Use RBP for Incoming X.25 Connections Example

      In the following example, when PVC 1 receives a data packet from the X.25 host, the router will attempt to establish a TCP connection to port 9999 at the TCP/IP host that has the IP address 10.0.0.1.

      Interface Serial1/0
       encapsulation x25 
       x25 pvc 1 rbp remote host 10.0.0.1 port 9999

      SVCs Configured to Use RBP for Incoming X.25 Connections Example

      In the following example, if serial interface 1/0 receives an X.25 call from 12132, the router will map the call and open a TCP connection to port number 9999 at the remote TCP/IP host that has the IP address 10.0.0.1.

      interface Serial1/0
       encapsulation x25 dce
       x25 address 12030
       x25 map rbp 12132 remote host 10.0.0.1 port 9999

      PVC Configured to Use RBP for Incoming TCP Connections Example

      In the following example, the router is configured to listen for a TCP connection request on port 9999. When a TCP connection is established, the router will send an X.25 reset over the configured X.25 destination circuit.

      Interface serial2/1
       encapsulation x25
       x25 pvc 2 rbp local port 9999

      SVCs Configured to Use RBP for Incoming TCP Connections Example

      In the following example, if the router receives a request for a TCP connection at port 9999, the router will make an X.25 call with no call user data to address 12131.

      interface Serial1/0
       encapsulation x25 dce
       x25 address 13133
       x25 map rbp 12131 local port 9999

      Glossary

      CUD --call user data. Field in an X.25 data packet that contains encapsulated upper-layer information.

      CUG --closed user group. A collection of DTE devices for which the network controls access among members and between members and nonmembers. A DTE may subscribe to zero, one, or more CUGs. A DTE that does not subscribe to a CUG is referred to as being in the open part of the network.

      D-bit --"delivery confirmation" bit. Data packet flag used to request end-to-end acknowledgment for the packet.

      DCE --data communications equipment. Devices and connections of a communications network that make up the network end of the user-to-network interface. The DCE provides a physical connection to the network, forwards traffic, and provides a clocking signal used to synchronize data transmission between DCE and DTE devices. Modems and interface cards are examples of DCE.

      DTE --data terminal equipment. Device at the user end of a user-network interface that serves as a data source, destination, or both. DTE connects to a data network through a DCE device (for example, a modem) and typically uses clocking signals generated by the DCE. DTE includes such devices as computers, protocol translators, and multiplexers.

      local acknowledgment --Method whereby a switch acknowledges a received data packet before it has received acknowledgment of the data from the next hop.

      M-Bit --"more data" bit. Data packet flag that indicates that at least one more data packet is required for completion of a message of contiguous data.

      PVC --permanent virtual circuit. Virtual circuit that is permanently established.

      Q-bit--"qualified" bit. Data packet flag that signifies that the packet’s user data is a control signal for the remote device, not a message for the user.

      RBP--record boundary preservation. Protocol that defines a way for hosts using TCP/IP-based protocols to exchange data with devices that use the X.25 protocol, preserving the logical record boundaries conveyed by the X.25 M-bit ("more data" bit).

      SVC --switched virtual circuit. Virtual circuit that is dynamically established on demand and is torn down when transmission is complete. SVCs are used in situations in which data transmission is sporadic.

      X.121 --ITU-T standard describing an addressing scheme used in X.25 networks. Sometimes called the X.25 address.

      X.25 -- ITU-T standard that defines how connections between DTE and DCE are maintained for remote terminal access and computer communications in PDNs. X.25 specifies LAPB, a data-link layer protocol, and PLP, a network layer protocol.

      XOT --X.25 over TCP.