DECnet-VAX Phase V WAN connectivity in open-simh using an HDLC datalink

 

DNA Phase V introduced HDLC as a supported WAN datalink for use with DECnet.  HDLC framing offers efficiency gains in terms of bits transmitted compared to DDCMP, especially with short packets.  The default frame size was larger, and a 32 bit FCS was optionally supported for improved error detection.

Current versions of open-simh, as of this blog post, support HDLC framing on the DUP11 and DPV11 devices.

Read the previous post about installing and configuring DECnet-plus to get started.  Then, rather than configuring a DDCMP datalink, you simply configure an HDLC datalink instead.

Unfortunately, the VMS DUP11/DPV11 driver has more bugs that affect HDLC operation when used with open-simh, so some additional patches are needed. The following is a superset of the previous patches required for DPV11 DDCMP and those required for HDLC, so will give a driver that works for both:

$ patch sys$loadable_images:sedriver.exe /absolute
repl/inst 3f25
'MOVB    (R7),B^07(R0)'
exit
'NOP'
exit
repl/inst 3f30
'MOVB    (R10),B^06(R0)'
exit
'MOVW    (R10),B^06(R0)'
exit
repl/inst 3ec8
'MOVB    (R10),B^06(R0)'
exit
'NOP'
exit
repl/inst 3ed8
'MOVB    (R7),B^07(R0)'
exit
'MOVW    (R10), B^06(R0)'
exit
repl/inst 3ef9
'MOVB    (R10),B^06(R0)'
exit
'NOP'
exit
repl/inst 3f0b
'MOVB    (R7),B^07(R0)'
exit
'MOVW    (R10), B^06(R0)'
exit
repl/inst 4611
'MOVB    W^02B1(R2),B^07(R0)'
exit
'NOP'
exit
repl/inst 461a
'MOVB    W^02B0(R2),B^06(R0)'
exit
'MOVW    W^02B0(R2),B^06(R0)'
exit
repl/inst 45bb
'MOVB    W^02B0(R2),B^06(R0)'
exit
'NOP'
exit
repl/inst 45c9
'MOVB    W^02B1(R2),B^07(R0)'
exit
'MOVW    W^02B0(R2),B^06(R0)'
exit
update

As the previous examples used a DUP11, I've demonstrated a DPV11 below.  First configure the device in open-simh, and load the driver in VMS.

sim> show dpv
DPV     address=200000B8-200000BF*, vector=2C0-2C4*, BR4, lines=1
        attached to Line=0,UDP,12351,Connect=192.168.0.4:12350, speed=0 (unrestricted), No Corruption
sim> continue

$ mcr sysgen
SYSGEN>  SHO/UNI

 ** UNIBUS map for nexus #0 on 16-AUG-2022 10:07:15.28 **

 Address 760270 (83470CB8) responds with value 0200 (hex)
 Address 760272 (83470CBA) responds with value 0000 (hex)
 Address 760274 (83470CBC) responds with value 0004 (hex)
 Address 760276 (83470CBE) responds with value 0000 (hex)

$ mcr sysgen
CONN SEA0 /ADA=0 /VEC=%X2C0 /CSR=%O760270 /numvec=2


Now create the relevant routing and datalink entities using NCL:

$ mcr ncl
create modem connect line sea0 comm port sea0
set modem connect line sea0 modem control none
create hdlc link hdlc-0
create hdlc link hdlc-0 logical station hdlc-0
set hdlc link hdlc-0 phys line mode conn line sea0
enab hdlc link hdlc-0
enab hdlc link hdlc-0 logi stat hdlc-0
creat routing circ hdlc-0 type hdlc
set rout circ hdlc-0 data link ent hdlc link hdlc-0 logi stat hdlc-0
enable rout circ hdlc-0
enab mode conn line sea0

If you've done the same at the other end of the link, this is the successful result:

NCL>show hdlc link hdlc-0 logi stat * all

Node 0 HDLC Link hdlc-0 Logical Station hdlc-0
at 2022-08-16-10:14:31.060+01:00Iinf

Identifiers

    Name                              = hdlc-0

Status

    State                             = On
    Protocol State                    = Running
    Maintenance Mode                  = False
    Remote Version                    = '010000'H
    Command Address                   = 3
    UID                               = 3B8066A0-1D3B-11ED-805E-AA000400C275

Counters

    Creation Time                     = 2022-08-16-09:12:55.690+01:00Iinf
    Data Octets Received              = 35587
    Data Octets Sent                  = 98831
    Data PDUs Received                = 302
    Data PDUs Sent                    = 427
    FRMRs Received                    = 0
    FRMRs Generated                   = 0
    Invalid Mode Commands             = 0
    Times Acknowledge Timer Expired   = 869
    Negotiation Failures              = 1
    Times Station Inoperative         = 0
    Times Station Maintenance         = 0
    REJs Received                     = 2
    REJs Sent                         = 0
    Polls Received                    = 2
    RNRs Received                     = 0
    RNRs Sent                         = 0
    Times Station Halted              = 0
    Times Station Resetting           = 0
    Times Station Initialising        = 2
    Times Station Running             = 2
    Times Station Setup Failed        = 0
    Unknown UI PDUs Received          = 0
    XIDs Received                     = 304

NCL> show routing circuit hdlc-0 adj * all

Node 0 Routing Circuit hdlc-0 Adjacency RTG$0147
at 2022-08-16-10:16:41.240+01:00Iinf

Identifiers

    Name                              = RTG$0147

Status

    Type                              = Autoconfigured
    State                             = Up
    Neighbor Node Type                = Phase V Endnode
    Endnode IDs                       =
       {
          AA-00-04-00-C4-75 (LOCAL:.TOGATH)
       }
    Endnode NETs                      =
       {
          49::00-1D:AA-00-04-00-C4-75:00 (LOCAL:.TOGATH)
       }





Comments

Popular posts from this blog

DECnet-VAX Phase V WAN connectivity with simh

Time Electronics 9814 Programmable Voltage Calibrator

DECnet-VAX Phase V P.S.I. configuration in open_simh