NET/ROM

From LinuxHam
Revision as of 01:55, 16 April 2006 by DL5RB (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

NET/ROM was the first layer 3 protocol providing transparent routing to the packet radio user thus enabled less constraint growth of the packet radio network.

The protocol

In NET/ROM there is a 5 byte long transport layer folling the AX.25 layer. It is constructed as follows:

  Offset     Use
       0     Circuit Index
       1     Circuit ID
       2     TX Sequence Number
       3     RX Sequence Number
       4     Opcode and Flags

The Opcode and Flags field is constructed as follows:

    Bits     Use
   0 - 3     Opcode
       4     Reserviert
       5     More Follows Flag
       6     NAK Flag
       7     Choke

NET/ROM implements seven operations for the opcode field. Opcodes 0..6 were already defined in the original Software 2000 NET/ROM specification.

       0    Protocol Extension
       1    Connect Request
       2    Connect Acknowledge
       3    Disconnect Request
       4    Disconnect Acknowledge
       5    Information
       6    Information Acknowledge
       7    Reset

G8PZT Reset

The Reset operation was designed by G8PZT. It solves the problem that NET/ROM has nothing equivalent to TCP's RST flag to tell the remote side that a connection does no longer exist on the local side. Strict NET/ROM has no other way of dealing with this case than letting the connection timeout - a very slow recovery method. To avoid reset wars Linux will never reply to a Reset packet with another Reset packet. For paranoia reasons the G8PZT Reset extension is currently disabled by default; it needs to be explcitly enabled by:

sysctl -w net.netrom.reset=1

The intent is to change the default to enabled after Linux 2.6.17 has been released and no issues have been found.