1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
|
Network Working Group R. Dixon
Request for Comments: 1434 D. Kushi
IBM
March 1993
Data Link Switching: Switch-to-Switch Protocol
Status of this Memo
This memo provides information for the Internet community. It does
not specify an Internet standard. Distribution of this memo is
unlimited.
Abstract
This RFC describes IBM's support of Data Link Switching over TCP/IP.
The RFC is being distributed to members of the Internet community in
order to solicit their reactions to the proposals contained in it.
While the issues discussed may not be directly relevant to the
research problems of the Internet, they may be interesting to a
number of researchers and implementors.
Any questions or comments relative to the contents of this RFC should
be sent to the following Internet address: dlsw@ralvma.vnet.ibm.com.
Table of Contents
1. Introduction 2
2. Overview 2
3. Transport Connection 4
3.1. SSP Frame Formats 5
3.2. Address Parameters 8
3.3. Message Types 10
4. Protocol Specification 11
4.1. Protocol Flow Diagrams 11
4.1.1. Connect Protocols 11
4.1.2. Link Restart Protocols 13
4.1.3. Disconnect Protocols 15
4.2. DLS State Machine 16
4.2.1 Data Link Switch States 16
4.2.2 State Transition Tables 21
4.3. NetBIOS Datagrams 30
Acknowledgments 32
References 32
Security Considerations 32
Authors' Addresses 33
Dixon & Kushi [Page 1]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
1. Introduction
Data Link Switching (DLS) is a forwarding mechanism for the IBM SNA
and IBM NetBIOS protocols. It does not provide full routing, but
instead provides switching at the Data Link layer and encapsulation
in TCP/IP for transport over the Internet. This memo documents the
Switch-to-Switch Protocol (SSP) that is used between IBM 6611 Network
Processors.
Today, the IBM 6611 supports SNA (PU 2 and PU 4) systems and NetBIOS
systems attached to token-ring networks, as well as SNA (PU 2)
systems attached to SDLC links. For the later case, the SDLC
attached systems are provided with a LAN appearance within the IBM
6611. For the LAN attached systems, the IBM 6611 appears as a
source-routing bridge. Remote systems that are accessed through the
IBM 6611 appear as systems attached to an adjacent ring. This ring
is a virtual ring that is manifested within each IBM 6611.
2. Overview
Data Link Switching was developed to provide support for SNA and
NetBIOS in multi-protocol routers. Since SNA and NetBIOS are
basically connection oriented protocols, the Data Link Control
procedure that they use on the LAN is IEEE 802.2 Logical Link Control
(LLC) Type 2. Data Link Switching also accommodates SNA protocols
over WAN links via the SDLC protocol.
IEEE 802.2 LLC Type 2 was designed with the assumption that the
network transit delay would be small and predictable (i.e., a local
LAN). Therefore the LLC elements of procedure use a fixed timer for
detecting lost frames. When bridging is used over wide area lines
(especially at lower speeds), the network delay is larger and it can
vary greatly based upon congestion. When the delay exceeds the
time-out value LLC attempts to retransmit. If the frame is not
actually lost, only delayed, it is possible for the LLC Type 2
procedures to become confused. And as a result, the link is
eventually taken down.
Given the use of LLC Type 2 services, Data Link Switching addresses
the following bridging problems:
DLC Time-outs
DLC Acknowledgments over the WAN
Flow and Congestion Control
Broadcast Control of Search Packets
Source-Route Bridging Hop Count Limits
NetBIOS also makes extensive use of datagram services that use LLC
Dixon & Kushi [Page 2]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
Type 1. In this case, Data Link Switching addresses the last two
problems in the above list.
The principal difference between Data Link Switching and bridging is
that DLS terminates the Data Link Control whereas bridging does not.
The following figure illustrates this difference based upon two end
systems operating with LLC Type 2 services.
Bridging
-------- Bridge Bridge
+------+ +----+ +----+ +------+
| End | +---------+ | +-----/ | | +---------+ | End |
|System+-+ LAN +-+ | /------+ +-+ LAN +-+System|
| | +---------+ | | TCP/IP | | +---------+ | |
+------+ +----+ +----+ +------+
Info------------------------------------------------------->
<-------------------------------------------------------RR
Data Link Switching
-------------------
+------+ +----+ +----+ +------+
| End | +---------+ | +-----/ | | +---------+ | End |
|System+-+ LAN +-+DLS | /------+ DLS+-+ LAN +-+System|
| | +---------+ | | TCP/IP | | +---------+ | |
+------+ +----+ +----+ +------+
Info-------------------> -------------> Info
<-------------------RR ---------------->
<----------------RR
Figure 1. Data Link Switching Contrasted to Bridging
In traditional bridging, the Data Link Control is end-to-end. Data
Link Switching terminates the LLC Type 2 connection at the switch.
This means that the LLC Type 2 connections do not cross the wide area
network. The DLS multiplexes LLC connections onto a TCP connection
to another DLS. Therefore, the LLC connections at each end are
totally independent of each other. It is the responsibility of the
Data Link Switch to deliver frames that it has received from a LLC
connection to the other end. TCP is used between the Data Link
Switches to guarantee delivery of frames.
As a result of this design, LLC time-outs are limited to the local
LAN (i.e., they do not traverse the wide area). Also, the LLC Type 2
acknowledgments (RR's) do not traverse the WAN, thereby reducing
traffic across the wide area links. For SDLC links, polling and poll
response occurs locally, not over the WAN. Broadcast of search
frames is controlled by the Data Link Switches once the location of a
target system is discovered. Finally, the switches can now apply
Dixon & Kushi [Page 3]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
back pressure to the end systems to provide flow and congestion
control.
Data Link Switching uses LAN addressing to set up connections between
SNA systems. SDLC attached devices are defined with MAC addresses to
enable them to communicate with LAN attached devices. For NetBIOS
systems, Data Link Switching uses the NetBIOS name to forward
datagrams and to set up connections for NetBIOS sessions. For
circuit establishment, SNA systems send TEST (or in some cases, XID)
frames to the null (x'00') SAP. NetBIOS systems have an address
resolution procedure, based upon the Name Query and Name Recognized
frames, that is used to establish an end-to-end circuit.
Since Data Link Switching may be implemented in multi-protocol
routers, there may be situations where both bridging and switching
are enabled. SNA frames can be identified by their link SAP.
Typical SAP values for SNA are x'04', x'08', and x'0C'. NetBIOS
always uses a link SAP value of x'F0'.
3. Transport Connection
Data Link Switches can be in used in pairs or by themselves. A
Single DLS internally switches one data link to another without using
TCP (DLC(1) to DLC(2) in the figure below). A paired DLS multiplexes
data links over a reliable transport using a Switch-to-Switch
Protocol (SSP). This RFC will document the frame formats and
protocols for this multiplexing between Data Link Switches. The
initial implementation of SSP uses TCP as the reliable transport
between Data Link Switches. However, other transport connections
such as OSI TP4 could be used.
+-----------------------------------------------+Switch-to-Switch
| DLC Interfaces | Protocol (SSP)
|+------------+ DLC Request +------------+ |
|| Data |<---------------- | | |Send SSP Frame
|| Link | DLC Indication | | |-------------->
|| Control 1 |----------------->| | |
|+------------+ | Data Link | |
|+------------+ DLC Request | Switch | |
|| Data |<---------------- | | |Rec. SSP Frame
|| Link | DLC Indication | | |<-------------
|| Control 2 | ---------------->| | |
|+------------+ +------------+ |
| Multi-Protocol Router |
+-----------------------------------------------+
Figure 2. DLS System Diagram
Dixon & Kushi [Page 4]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
Before Data Link Switching can occur between two routers, they must
establish a TCP connection between them. Each DLS will maintain a
list of DLS capable routers and their status (active/inactive). Once
this connection is established, the DLS will employ SSP to establish
end-to-end circuits over the transport connection. Within the
transport connection is a specific set of DLS message units. The
message formats and types for these PDUs are documented in the
following sections.
The default parameters associated with the TCP connections between
Data Link Switches are as follows:
Socket Family AF_INET (Internet protocols)
Socket Type SOCK_STREAM (stream socket)
Read Port Number 2065
Write Port Number 2067
Two or more Data Link Switches may be attached to the same LAN,
consisting of a number of token-ring segments interconnected by
source-routing bridges. In this case, a TCP connection is not
defined between bridges attached to the same LAN. This will allow
using systems to select one of the possible Data Link Switches in a
similar manner to the selection of a bridge path through a source-
routed bridged network. The virtual ring segment in each Data Link
Switch attached to a common LAN must be configured with the same ring
number. This will prevent LAN frames sent by one Data Link Switch
from being propagated through the other Data Link Switches.
3.1. SSP Frame Formats
The following diagrams show the two message headers for traffic
between Data Link Switches. The control message header is used for
all messages except information messages. The information message
header is 16 bytes long, and the control message header is 72 bytes
long. The first sixteen bytes of the control message header are
identical to the information message header.
Dixon & Kushi [Page 5]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
CONTROL MESSAGES (72 Bytes)
+-----------------------------------------------------------------+
| Version Number Reserved Field |
| Message Length ----> . |
| Remote Data Link Correlator ----> . |
| . . |
| Remote DLC Port ID ----> . |
| . . |
| Reserved Field ----> . |
| Message Type Reserved Field |
| Protocol ID Header Number |
| Header Length ----> . |
| Reserved Field ----> . |
| Reserved Field Message Type |
| Target MAC Address ----> . |
| . . |
| . . |
| Origin MAC Address ----> . |
| . . |
| . . |
| Origin Link SAP Target Link SAP |
| Frame Direction Reserved Field |
| Message Length ----> . |
| DLC Header Length ----> . |
| Origin DLC Port ID ----> . |
| . . |
| Origin Data Link Correlator ----> . |
| . . |
| Origin Transport ID ----> . |
| . . |
| Target DLC Port ID ----> . |
| . . |
| Target Data Link Correlator ----> . |
| . . |
| Target Transport ID ----> . |
| . . |
| Reserved Field ----> . |
| . . |
+-----------------------------------------------------------------+
(Even Byte) (Odd Byte)
Dixon & Kushi [Page 6]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
INFORMATION MESSAGE (16 Bytes)
+-----------------------------------------------------------------+
| Version Reserved Field |
| Message Length ----> . |
| Remote Data Link Correlator ----> . |
| . . |
| Remote DLC Port ID ----> . |
| . . |
| Reserved Field ----> . |
| Message Type Reserved Field |
+-----------------------------------------------------------------+
(Even Byte) (Odd Byte)
The Version Number is set to x'4B', indicating a numeric value of 75.
The Header Length is x'00 48', indicating a numeric value of 72
bytes.
The Header Number is x'01', indicating a value of one.
The Frame Direction field is set to x'01' for frames sent from the
origin DLS to the target DLS, and is set to x'02' for frames sent
from the target DLS to the origin DLS.
Note: The Remote Data Link Correlator and Remote DLC Port ID are
set equal to the Target Data Link Correlator and Target DLC Port
ID if the Frame Direction field is set to x'01', and are set equal
to the Origin Data Link Correlator and Origin DLC Port ID if the
Direction Field is set to x'02'.
The Protocol ID field is set to x'42', indicating a numeric value of
66.
The Message Length field defines the number of bytes within the data
field following the header. Note that this value is specified in two
different fields of the message header.
The DLC Header Length is set to zero for SNA and is set to x'23' for
NetBIOS datagrams, indicating a length of 35 bytes. This includes
the Access Control (AC) field, the Frame Control (FC) field,
Destination MAC Address (DA), the Source MAC Address (SA), the
Routing Information (RI) field (padded to 18 bytes), the Destination
link SAP (DSAP), the Source link SAP (SSAP), and the LLC control
field (UI).
The values for the Message Type field are defined in a later section.
Note that this value is specified in two different fields of the
message header.
Dixon & Kushi [Page 7]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
Reserved fields are set to zero upon transmission and should be
ignored upon receipt.
3.2. Address Parameters
A data link is defined as a logical association between the two end
stations using Data Link Switching. It is identified by a Data Link
ID (14 bytes) consisting of the pair of attachment addresses
associated with each end system. Each attachment address is
represented by the concatenation of the MAC address (6 bytes) and the
LLC address (1 byte).
DATA LINK ID (14 Bytes)
+-----------------------------------------------------------------+
|Target MAC Address ----> . |
| . . |
| . . |
|Origin MAC Address ----> . |
| . . |
| . . |
|Origin Link SAP Target Link SAP |
+-----------------------------------------------------------------+
An end-to-end circuit is identified by a pair of Circuit ID's. A
Circuit ID is a 64 bit number that identifies the DLC circuit within
a single DLS. It consists of a DLC Port ID (4 bytes), and a Data
Link Correlator (4 bytes). This value is unique in a single DLS and
is assigned locally. The pair of Circuit ID's along with the
identifiers of the Data Link Switches, uniquely identify a single
end-to-end circuit. Each DLS must keep a table of these Circuit ID
pairs, one for the local end of the circuit and the other for the
remote end of the circuit. In order to identify which Data Link
Switch originated the establishment of a circuit, the terms, origin
DLS and target DLS, will be employed in this document.
CIRCUIT ID (8 Bytes)
+-----------------------------------------------------------------+
|DLC Port ID ----> . |
| . . |
|Data Link Correlator ----> . |
| . . |
+-----------------------------------------------------------------+
The Origin Transport ID and the Target Transport ID fields in the
message header are used to identify the individual TCP/IP port on a
Data Link Switch. The values have only local significance. However,
each Data Link Switch is required to reflect the values contained in
these two fields, along with the associated values for DLC Port ID
Dixon & Kushi [Page 8]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
and the Data Link Correlator, when returning a message to the other
Data Link Switch.
The following figure shows the use of the addressing parameters
during the establishment of an end-to-end connection. The CANUREACH,
ICANREACH, and REACH_ACK messages all carry the Data Link ID,
consisting of the MAC and Link SAP addresses associated with the two
end stations. Upon receipt of a CANUREACH message, the target DLS
starts a data link for each port, thereby obtaining a Data Link
Correlator. If the target station can be reached, an ICANREACH
message is returned to the origin DLS containing the Target Circuit
ID parameter. Upon receipt, the origin DLS starts a data link and
returns the Origin Circuit ID to the target DLS within the REACH_ACK
message. If the REACH_ACK message is not successfully received, the
target Data Link Switch can obtain the Origin Circuit ID from a
subsequent message (i.e., CONTACT, XIDFRAME, or DGRMFRAME).
+------------+ +------------+
|Disconnected| |Disconnected|
+------------+ CANUREACH (Data Link ID) +------------+
------------------------------------------------->
ICANREACH (Data Link ID, Target Circuit ID)
<------------------------------------------------
REACH_ACK (Data Link ID, Origin Cir ID, Target Cir ID)
------------------------------------------------->
+------------+ +------------+
|Circuit Est.| |Circuit Est.|
+------------+ +------------+
XIDFRAME (Data Link ID, Origin Cir ID, Target Cir ID)
<------------------------------------------------>
CONTACT (Data Link ID, Origin Cir ID, Target Cir ID)
------------------------------------------------->
CONTACTED (Data Link ID, Origin Cir ID, Target Cir ID)
<-------------------------------------------------
+------------+ +------------+
| Connected | | Connected |
+------------+ +------------+
INFOFRAME (Remote Circuit ID = Target Circuit ID)
------------------------------------------------->
INFOFRAME (Remote Circuit ID = Origin Circuit ID)
<-------------------------------------------------
Figure 3. DLS Circuits and Connections
During the exchange of the XIDFRAME, CONTACT, and CONTACTED messages,
the pair of Circuit ID parameters is included in the message format
along with the DATA LINK ID parameter. Once the connection has been
established, the INFOFRAME messages are exchanged with the shorter
Dixon & Kushi [Page 9]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
header. This header contains only the Circuit ID associated with the
remote DLS. The Remote Data Link Correlator and the Remote DLC Port
ID are set equal to the Data Link Correlator and the DLC Port ID that
are associated with the origin or target Data Link Switch, dependent
upon the direction of the packet.
3.3. Message Types
The following table lists the protocol data units that are exchanged
between Data Link Switches. All values not listed are reserved for
potential use in follow-on releases.
Command Function Hex Value
------- -------- ---------
CANUREACH Can U Reach Station x'03'
ICANREACH I Can Reach Station x'04'
REACH_ACK Reach Acknowledgment x'05'
DGRMFRAME Datagram Frame (See note) x'06'
XIDFRAME XID Frame x'07'
CONTACT Contact Remote Station x'08'
CONTACTED Remote Station Contacted x'09'
RESTART_DL Restart Data Link x'10'
DL_RESTARTED Data Link Restarted x'11'
INFOFRAME Information (I) Frame x'0A'
HALT_DL Halt Data Link x'0E'
DL_HALTED Data Link Halted x'0F'
NETBIOS_NQ NetBIOS Name Query x'12'
NETBIOS_NR NetBIOS Name Recognized x'13'
DATAFRAME Data Frame (See note) x'14'
NETBIOS_ANQ NetBIOS Add Name Query x'1A'
NETBIOS_ANR NetBIOS Add Name Response x'1B'
Table 1. SSP Message Types
Note: Both the DGRMFRAME and DATAFRAME messages are used to carry
information received by the DLC entity within UI frames. As will
be explained below, the DGRMFRAME message is addressed according
to a pair of Circuit IDs, while the DATAFRAME message is addressed
according to a Data Link ID, being composed of a pair of MAC
addresses and a pair of link SAP addresses. The latter is
employed prior to the establishment of an end-to-end circuit when
Circuit IDs have yet to be established.
For the exchange of NetBIOS control messages, the entire DLC header
is carried as part of the message unit. This includes the MAC
header, with the routing information field padded to 18 bytes, and
the LLC header. The following message types are affected:
NETBIOS_NQ, NETBIOS_NR, NETBIOS_ANQ, NETBIOS_ANR, and DATAFRAME when
Dixon & Kushi [Page 10]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
being used by NetBIOS systems. The routing information in the DLC
header is not used by the remote Data Link Switch upon receiving the
above five messages.
4. Protocol Specification
This section provides a description of the Switch-to-Switch
Protocols. Included is a set of high-level protocol flows and a
detail set of state transition tables. The states and the protocols
are described in terms that are intended to be generic to different
platforms. Emphasis of the technical details is to ensure
operability of the IBM 6611 with another vendor's implementation.
Notes are inserted at points where the IBM 6611 performs local
actions that are specific to the AIX platform upon which it operates.
4.1. Protocol Flow Diagrams
The switch-to-switch protocols are used to setup and take down
circuits between a pair of Data Link Switches. Once a circuit is
established, the end stations on the local networks can employ LLC
Type 1 (connectionless) protocols. In addition, the end systems can
establish an end-to-end connection for support of LLC Type 2
(connection oriented) protocols.
The term, Data Link, is used in this document to refer to both a
"logical data link" when supporting Type 1 LLC services, and a "data
link connection" when supporting Type 2 LLC services. In both cases,
the Data Link in defined by the concatenation of the destination MAC
address (DA), the source MAC address (SA), the destination link SAP
(DSAP) and source link SAP (SSAP).
4.1.1. Connect Protocols
The following figure depicts the protocol flows that are used for the
establishment of a circuit between a pair of Data Link Switches,
followed by the establishment of a connection between the pair of end
systems. The figure is drawn assuming that the two end systems are
SNA (the protocol flow for NetBIOS systems is described in a later
paragraph).
Dixon & Kushi [Page 11]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
Data Link Data Link Data Link Data Link
Control Switch Switch Control
-------------------- --------------------
+------------+ +------------+
|Disconnected| |Disconnected|
+------------+ +------------+
Test Command CANUREACH Test Comd.
----------> ---------------------------------------> ------->
(DSAP=Null) (DSAP=SSAP)
Test Response
ICANREACH <---------
Test Response <---------------------------------------
<---------- REACH ACK
--------------------------------------->
+------------+ +------------+
|Circuit Est.| |Circuit Est.|
+------------+ +------------+
SABME CONTACT
----------> ---------------------------------------> SABME
UA ------->
<----------
RNR UA
<---------- CONTACTED <-------
<---------------------------------------
+------------+ +------------+
| Connected | | Connected |
+------------+ +------------+
RR
<---------
Figure 4. DLS Connect Message Protocols
Upon receipt of a Test command from the origin station, the origin
DLS will send a CANUREACH (i.e., can you reach) message to the target
DLS. If the target DLS is not known to the origin DLS, the CANUREACH
message is sent to all remote Data Link Switches defined to the
origin DLS. The receipt of the CANUREACH message causes the target
DLS to send a Test command searching for the target station. The
target station will return a Test response, causing the target DLS to
return an ICANREACH (i.e., I can reach) message to the origin DLS.
If multiple Data Link Switches can reach the target station, the
origin DLS will receive multiple ICANREACH messages. The origin DLS
will select the first message and send a REACH_ACK (i.e., reach
acknowledgment) message to the selected Data Link Switch. During
this exchange of messages, both Data Link Switches change states from
the Disconected state to the Circuit Established state. Once the
circuit is established, Type-1 frames, such as XID, may be exchanged
between the origin and target stations.
Dixon & Kushi [Page 12]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
To establish a connection, the origin station sends a SABME command.
Upon receipt of this command, the origin DLS will send a CONTACT
message to the target DLS and return a UA response to the origin
station. To inhibit traffic flow until the connection is established
to the remote station, a RNR supervisory frame is sent to the origin
station. The CONTACT message will cause the target DLS to send a
SABME command to the target station, which in return will reply with
a UA response. Upon receipt of the UA response, the target DLS will
send a CONTACTED message to the origin DLS. The origin DLS will now
send an RR supervisory frame to the origin station. During this
exchange of messages, both Data Link Switches change states from the
Circuit Established state to the Connected state.
For NetBIOS end systems, the protocol flows are similar but employ
different frames and SSP messages. Instead of using a Test command
frame to initiate the circuit, a NetBIOS system will use a Name Query
frame. Receipt of a Name Query frame will cause the Data Link Switch
to issue a NETBIOS_NQ message instead of the CANUREACH message. In a
like fashion, the Test response is replaced with a Name Recognized
frame and the ICANREACH message is replaced with a NETBIOS_NR
message. As with the SNA protocol flows, the receipt of a NETBIOS_NR
message causes the origin Data Link Switch to respond with a
REACH_ACK message.
4.1.2. Link Restart Protocols
The following figure depicts the protocol flows that result from
restarting the end-to-end connection. This causes the Data Link
Switches to terminate the existing connection and to enter the
Circuit Established state awaiting the start of a new connection.
Dixon & Kushi [Page 13]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
Data Link Data Link Data Link Data Link
Control Switch Switch Control
--------------------- ---------------------
+-----------+ +-----------+
| Connected | | Connected |
SABME +-----------+ +-----------+
-----------> RESTART_DL
DM -------------------------------------> DISC
<----------- -------->
UA
DL_RESTARTED (Case 1) <--------
<-------------------------------------
+-----------+ +-----------+
|Circuit Est| |Circuit Est|
+-----------+ +-----------+
........... or ...........
SABME
-----------> DL_RESTARTED (Case 2)
UA <-------------------------------------
<----------- +-----------+
|Circuit Est|
CONTACT +-----------+
RNR ------------------------------------>
<----------
Figure 5. DLS Link Restart Message Protocols
Upon receipt of a SABME command from the origin station, the origin
DLS will send a RESTART_DL message to the target DLS. A DM response
is also returned to the origin station and the data link is
restarted.
Upon receipt of the RESTART_DL message, the target DLS will issue a
DISC command to the target station. The target station is expected
to return a UA response. The target DLS will then restart its data
link and send an DL_RESTARTED message back to the origin DLS. During
this exchange of messages, both Data Link Switches change states from
Connected state to Circuit Established state.
If the origin station now resends the SABME command, the origin DLS
will send a CONTACT message to the target DLS. If the SABME command
is received prior to the receipt of the DL_RESTARTED message (case 2
in the figure), the CONNECT message is delayed until the DL_RESTARTED
message is received. The resulting protocol flows at this point
parallel those given above for the connect sequence.
Dixon & Kushi [Page 14]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
4.1.3. Disconnect Protocols
The following figure depicts the protocol flows that result from the
end system terminating an existing connection. Not only is the
connection terminated, but the circuit between the Data Link Switches
is taken down.
Data Link Data Link Data Link Data Link
Control Switch Switch Control
-------------------- --------------------
+-----------+ +-----------+
| Connected | | Connected |
+-----------+ +-----------+
DISC
----------> HALT_DL
UA -------------------------------------> DISC
<---------- --------->
UA
DL_HALTED <--------
<-------------------------------------
+-----------+ +-----------+
|Disconnectd| |Disconnectd|
+-----------+ +-----------+
......... or ..........
+-----------+ +-----------+
| Connected | | Connected |
+-----------+ +-----------+
DISC TCP Connection Failure DISC
<-------- <------------------------------------> --------->
UA UA
--------> <--------
+-----------+ +-----------+
|Disconnectd| |Disconnectd|
+-----------+ +-----------+
Figure 6. DLS Disconnect Message Protocols
Upon receipt of a DISC command from the origin station, the origin
DLS will reply with a UA response and issue a HALT_DL message to the
target DLS. Upon receipt of the HALT_DL message, the target DLS will
send a DISC command to the target station. The target station will
then respond with a UA response, causing the target DLS to return a
DL_HALTED message to the origin DLS. During this exchange of
messages, both Data Link Switches change states from the Connected
state to the Disconnected state.
Dixon & Kushi [Page 15]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
If the TCP connection between two Data Link Switches fails, all
connections that are currently multiplexed on the failed TCP
connection will be taken down. This implies that both Data Link
Switches will send DISC commands to all the local systems that are
associated with the failed connections. Upon sending the DISC
command, the Data Link Switch will enter the DISCONNECT state for
each circuit.
4.2. DLS State Machine
The following state tables describe the states for a single
connection through the Data Link Switch. State information is kept
for each connection. The initial state for a connection is
DISCONNECT. The steady state is either CIRCUIT_ESTABLISHED or
CONNECTED. In the former state, an end-to-end circuit has been
established allowing the support of Type 1 LLC between the end
systems. The latter state exists when an end-to-end connection has
been established for the support of Type 2 LLC services between the
end systems.
For SNA, circuit establishment is via the use of IEEE 802.2 Test or
XID frames. SNA devices send these frames to the null SAP in order
to determine the source route information in support of bridging.
Normally SNA devices use SAP x'04', x'08', or x'0C'. Typically the
SAP would be used to determine if the Test frames should be sent to
the DLS code in the router. If both bridging and DLS are enabled,
this allows the product to ensure that SNA frames are not both
bridged and switched.
For NetBIOS, circuit establishment is via the Name Query and Name
Recognized frames. These frames are used for both address resolution
and source route determination. Normally NetBIOS devices use SAP
x'F0'.
4.2.1. Data Link Switch States
The Switch-to-Switch Protocols will be formally defined through a
single state machine. The following table lists the eleven possible
states. A separate state machine is employed for each end-to-end
circuit that is maintained by the Data Link Switch. The three steady
states are DISCONNECTED, CIRCUIT_ESTABLISHED, and CONNECTED.
Dixon & Kushi [Page 16]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
State Name Description
---------- -----------
CIRCUIT_ESTABLISHED The end-to-end circuit has been
established. At this time LLC Type 1
services are available from end-to-end.
CIRCUIT_PENDING The target DLS is awaiting a REACH_ACK
response to an ICANREACH message.
CIRCUIT_RESTART The DLS that originated the reset is
awaiting the restart of the data link
and the DL_RESTARTED response to a
RESTART_DL message.
CONNECTED The end-to-end connection has been
established thereby allowing LLC Type 2
services from end-to-end in addition to
LLC Type 1 services.
CONNECT_PENDING The origin DLS is awaiting the CONTACTED
response to a CONTACT message.
CONTACT_PENDING The target DLS is awaiting the
DLC_CONTACTED confirmation to a DLC_CONTACT
signal (i.e., DLC is waiting for a UA
response to an SABME command).
DISCONNECTED The initial state with no circuit or
connection established, the DLS is awaiting
either a CANUREACH, an ICANREACH, a
NETBIOS_NQ, or a NETBIOS_NR message.
DISCONNECT_PENDING The DLS that originated the disconnect
is awaiting the DL_HALTED response to a
HALT_DL message.
HALT_PENDING The remote DLS is awaiting the DLC_DL_HALTED
indication following the DLC_HALT_DL request
(i.e., DLC is waiting for a UA response to a
DISC command).
RESTART_PENDING The remote DLS is awaiting the DLC_DL_HALTED
indication following the DLC_HALT_DL request
(i.e., DLC is waiting for a UA response to a
DISC command), and the restart of the data
link.
RESOLVE_PENDING The target DLS is awaiting either the
DLC_DL_STARTED indication following the
DLC_START_DL reqest (i.e., DLC is waiting
for a Test response as a result of sending a
Test command), or a NB_Name_Recognized
frame in response to a NB_Name_Query frame.
Table 2. Data Link Switch States
The following figure depicts the events that cause a transition to a
new state. The resulting action(s) are not explicitly shown. The
Dixon & Kushi [Page 17]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
DISCONNECT_PENDING state will be entered whenever a DLC error
condition occurs in any of the other states (except RESOLVE_PENDING),
or when a DISC command is received by the DLC.
Dixon & Kushi [Page 18]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
DLC_RESOLVE_C+----+ +----DLC_ERROR---+
| | \|/ |
+------------+ +>+--+---------+ CANUREACH +-+----------+
| Disconnect +--DL_HALTED-->|Disconnected|------------>| Resolve |
| Pending |<+ +------->| |<-------+ | Pending |
+---------+--+ | | +-----+------+ | +-----+------+
/|\ | HALT_DL| /|\ |/|\/|\ | |
DLC_ERROR +----+ | +----+ | | +------+ | DLC_DL_STARTED
| | | |HALT_DL(ts)| +------+ |
| | ICANREACH| | HALT_DL(ts)|
+--HALT_DL(ts)+ | | | | | |
| HALT_DL(ts) | | HALT_DL(ts) | |
| | | | | | |
| +-RESTART_DL(ts)+----+ | | | | |
| | | \|/ \|/| | | \|/
+----+---+---+ | +-------+----+ | +-+----------+
| Contact |<-CONTACT--+--+ Circuit |<-REACH_ACK--+ Circuit |
| Pending | | | Established| (DLC not | Pending |
+-----+------+ | +----------+-+ contacted)+-+------+---+
| /|\ | /|\ /|\ | | | |
| | +--+----+ | | | | |
| +-CONTACT--+--+--------+----+------+----------+ REACH_ACK
| | |RESTART_DL(ts) | (DLC contacted)
DLC_CONTACTED | +------+ | | +--------------+ |
| | | | | DLC_CONTACTED | |
+---------------+-------+ | | +-----------------+ | |
+-----DL_RESTARTED | | | | | |
| (DLC not contacted) \|/| | \|/ | \|/
+-----+------+ +---+-+------+ CONTACTED +-----+------+
| Circuit |<-DLC_RESET---+ Connected |<------------+ Connect |
| Restart | | | | Pending |
+----------+-+ +------------+ +-----+------+
/|\ | DL_RESTARTED /|\ |
| +----------------(DLC contacted)--------------+ |
| |
+-------------------------DLC_RESET--------------------+
Figure 7. DLS State Transitions (ts = transitional state)
The DISCONNECT state is the initial state for a new circuit. One end
station starts the connection via a TEST or XID command (i.e.,
DLC_RESOLVE_C) or a NetBIOS Name Query command (not explicitly
shown). Upon receipt, the Data Link Switches exchange a set of
CANUREACH, ICANREACH and REACH_ACK messages. Upon completion of this
three-legged exchange, both Data Link Switches will be in the
CIRCUIT_ESTABLISHED state. Two pending states also exist during this
exchange. The RESOLVE_PENDING state is entered by the target Data
Link Switch awaiting a Test response to a Test Command and the
Dixon & Kushi [Page 19]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
CIRCUIT_PENDING state is entered by the target DLS awaiting the
REACH_ACK reply to an ICANREACH message.
The CIRCUIT_ESTABLISHED state allows for the exchange of LLC Type 1
frames such as the XID exchanges between SNA stations that occurs
prior to the establishment of a connection. Also, datagram traffic
(i.e., UI frames) may be sent and received between the end stations.
These exchanges use the XIDFRAME and DGRMFRAME messages sent between
the Data Link Switches.
In the CIRCUIT_ESTABLISHED state, the receipt of a SABME command
(i.e., DLC_CONTACTED) causes the origin DLS to issue a CONTACT
message, to send an RNR supervisory frame (i.e., DLC_ENTER_BUSY) to
the origin station, and to enter the CONNECT_PENDING state awaiting a
CONTACTED message. The target DLS, upon the receipt of a CONTACT
message, will issue a SABME command (i.e., DLC_CONTACT) and enter the
Contact Pending state. Once the UA response is received (i.e.,
DLC_CONTACTED), the target DLS sends a CONTACTED message and enters
the CONNECTED state. When received, the origin DLS enters the
Connected state and sends an RR supervisory frame (i.e.,
DLC_EXIT_BUSY).
The CONNECTED state is the steady state for normal data flow once a
connection has been established. Information frames (i.e., INFOFRAME
messages) are simply sent back and forth between the end points of
the connection. This is the path that should be optimized for
performance.
The connection is terminated upon the receipt of a DISC frame or
under some other error condition detected by DLC (i.e., DLC_ERROR).
Upon receipt of this indication, the DLS will halt the local data
link, send a HALT_DL message to the remote DLS, and enter the
DISCONNECT_PENDING State. When the HALT_DL frame is received by the
other DLS, the local DLC is halted for this data link, a DL_HALTED
message is returned, and the DISCONNECTED state is entered. Receipt
of this DL_HALTED message causes the other DLS to also enter the
DISCONNECTED state.
The CIRCUIT_RESTART state is entered if one of the Data Link Switches
receives a SABME command (i.e., DLC_RESET) while in the CONNECTED
state. This causes a DM command to be returned to the origin station
and a RESTART_DL message to be sent to the remote Data Link Switch.
This causes the remote data link to be halted and then restarted.
The remote DLS will then send a DL_RESTARTED message back to the
first DLS. The receipt of the DL_RESTARTED message causes the first
DLS to issue a new CONTACT message, assuming that the local DLC has
been contacted (i.e., the origin station has resent the SABME
command). This is eventually responded to by a CONTACTED message.
Dixon & Kushi [Page 20]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
Following this exchange, both Data Link Switches will return to the
CONNECTED state. If the local DLC has not been contacted, the
receipt of a DL_RESTARTED command causes the Data Link Switch to
enter the CIRCUIT_ESTABLISHED state awaiting the receipt of a SABME
command (i.e., DLC_CONTACTED signal).
In the figure, the transition labeled HALT_DL(ts) represents the
HALT_PENDING state and the transition labeled RESTART_DL(ts)
represents the RESTART_PENDING state. Both these transitional states
have only one input event and only one output action. While in these
states, the Data Link Switch is awaiting responses from the local
station on the adjacent LAN (i.e., a UA response to a DISC command).
Also in the RESTART_PENDING state, the Data Link Switch will attempt
to restart the data link prior to sending a DL_RESTARTED message.
For the IBM 6611 implementation, the start of a data link involves
the exchange of a Test command/response on the adjacent LAN (i.e.,
DLC_START_DL). For other implementations, this additional exchange
may not be required.
4.2.2. State Transition Tables
This section provides a detail representation of the Data Link
Switch, as document by a set of state machines. The first state
machine documents the sending and receiving of SSP messages. Many of
the transitions are dependent upon local signals between the Data
Link Switch entity and one of the DLC entities. These signals and
their definitions are given in the following tables.
Dixon & Kushi [Page 21]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
Event Name Description
---------- -----------
DLC_CONTACTED Contact Indication: DLC has received an SABME
command and will send a UA response, or DLC has
received a UA response as a result of sending an
SABME command.
DLC_DGRM Datagram Indication: DLC has received a UI frame.
DLC_ERROR Error condition indicated by DLC: Such a
condition occurs when a DISC command is received
or when DLC experiences an unrecoverable error.
DLC_INFO Information Indication: DLC has received an
Information (I) frame.
DLC_DL_HALTED Data Link Halted Indication: DLC has
received a UA response to a DISC command.
DLC_DL_STARTED Data Link Started Indication: DLC has
received a Test response from the null SAP.
DLC_RESET Reset Indication: DLC has received an SABME
command during the time a connection is
currently active and has responded with DM.
DLC_RESOLVE_C Resolve Command Indication: DLC has received
a Test command addressed to the null SAP, or an
XID command addressed to the null SAP.
DLC_XID XID Indication: DLC has received an XID command
or response to a non-null SAP.
Table 3. Local DLC Events
Action Name Description
----------- -----------
DLC_CONTACT Contact Station Request: DLC will send a SABME
command.
DLC_DGRM Datagram Request: DLC will send a UI frame.
DLC_ENTER_BUSY Enter Link Station Busy: DLC will send an
RNR supervisory frame.
DLC_EXIT_BUSY Exit Link Station Busy: DLC will send an RR
supervisory frame.
DLC_HALT_DL Halt Data Link Request: DLC will send a DISC
command.
DLC_INFO Information Request: DLC will send an I frame.
DLC_RESOLVE_R Resolve Response Request: DLC will send a
Test response or XID response from the null SAP.
DLC_START_DL Start Data Link Request: DLC will send a Test
command to the null SAP.
DLC_XID XID Request: DLC will send an XID command or an
XID response.
Table 4. Local DLC Actions
Dixon & Kushi [Page 22]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
The Data Link Switch may be described by a state transition table
consisting of eleven states. Each of these states is described below
in terms of the events, actions, and next state for each transition.
If a particular event is not listed for a given state, no action and
no state transition should occur for that event. Any significant
comments concerning the transitions within a given state are given
immediately following the table representing the state.
A separate state machine is maintained by the Data Link Switch for
each end-to-end circuit. The number of circuits that may be
supported by each Data Link Switch is a local implementation option.
4.2.2.1 DISCONNECTED State
Event Action(s) Next State
----- --------- ----------
Receive CANUREACH DLC_START_DL RESOLVE_PENDING
Receive ICANREACH Send REACH_ACK, CIRCUIT_ESTABLISHED
DLC_RESOLVE_R
(See note 1)
Receive DATAFRAME DLC_DGRM
Receive NETBIOS_NQ DLC_DGRM RESOLVE_PENDING
Receive NETBIOS_NR Send REACH_ACK, CIRCUIT_ESTABLISHED
DLC_DGRM
(See note 2)
DLC_RESOLVE_C Send CANUREACH
DLC_DGRM If NB_Name_Query:
Send NETBIOS_NQ,
Else:
Send DATAFRAME
It is assumed that each Data Link Switch will build a set of topology
tables giving the identity of each Data Link Switch that can reach a
specific MAC address or a specific NetBIOS name. This table can be
built based upon the origin address information received within the
CANUREACH message or NETBIOS_NQ message and the target address
information within the ICANREACH message or NETBIOS_NR message. As a
consequence, the amount of search traffic can be kept to a minimum.
Upon receipt of a Test command or XID command to the null SAP (i.e.,
DLC_RESOLVE_C signal from DLC), the Data Link Switch will check the
topology table prior to sending the CANUREACH message. If the target
MAC address is in the table, the CANUREACH message will be sent to
only those Data Link Switches that are known to be able to reach the
given MAC address. If the MAC address is not in the table, the
CANUREACH message will be sent to all known Data Link Switches.
Since the destination link SAP (DSAP) value is null, the Target Link
SAP field in the CANUREACH message header is set equal to the Origin
Dixon & Kushi [Page 23]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
Link SAP value.
Upon receipt of a NB_Name_Query the Data Link Switch will check the
topology table prior to sending the NETBIOS_NQ message. If the
target NetBIOS name is in the table, the NETBIOS_NQ message will be
sent to only those Data Link Switches that are known to be able to
reach the given NetBIOS name. If the NetBIOS name is not in the
table, the NETBIOS_NQ message will be sent to all known Data Link
Switches.
For SNA, the DISCONNECTED state is exited upon receipt of a CANUREACH
message by a prospective target Data Link Switch, or upon receipt of
an ICANREACH message by the origin Data Link Switch. In the former
case, the Data Link Switch will issue a Test command to the target
station (i.e., DLC_START_DL signal is presented to DLC). In the
later case, a Test response is sent to the origin station (i.e.,
DLC_RESOLVE_R will be issued) and a REACH_ACK message will be
returned to the target Data Link Switch.
Note 1- The IBM 6611 will not send a Test response, but will send
a Test command to the station that originated the resolve
procedure (i.e., a DLC_START_DL will be issued) in order to start
the data link.
For NetBIOS, the DISCONNECTED state is exited upon the receipt of a
NETBIOS_NQ message by the prospective target Data Link Switch, or
upon the receipt of a NETBIOS_NR message by the origin Data Link
Switch. In the former case, the Data Link Switch will send a
NB_Name_Query frame. In the later case, the Data Link Switch will
send a NB_Name_Recognized frame to the origin station and a REACH_ACK
message will be returned to the target Data Link Switch.
Note 2- The IBM 6611 will also send a Test command (i.e., a
DLC_START_DL will be issued) to the station that originated the
name resolution in order to start the data link.
4.2.2.2 RESOLVE_PENDING State
Event Action(s) Next State
----- --------- ----------
Receive DATAFRAME DLC_DGRM
DLC_DL_STARTED Send ICANREACH CIRCUIT_PENDING
DLC_ERROR DISCONNECTED
DLC_DGRM If NB_Name_Recognized: If
Send NETBIOS_NR NB_Name_Recognized:
(See note), CIRCUIT_PENDING
Else:
Send DATAFRAME
Dixon & Kushi [Page 24]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
The RESOLVE_PENDING state is entered upon receipt of a CANUREACH
message or a NETBIOS_NQ message by the target DLS. In the former
case, a data link is started, causing a Test command to be sent by
the DLC. In the later case, a NB_Name_Query frame is sent. This
frame is directed to a group MAC address.
Any CANUREACH messages received in the RESOLVE_PENDING state will be
responded to if a DLC_DL_STARTED signal is received. The Data Link
Switch may also update its topology information based upon the origin
MAC address information in each CANUREACH message.
Upon the receipt of a DLC_DL_STARTED signal in the RESOLVE_PENDING
state, the Data Link Switch may update its topology table base upon
the remote MAC address information. The ICANREACH message should be
returned to all Data Link Switches that had sent a CANUREACH message.
In a similar fashion, the Data Link Switch may update its topology
table upon the receipt of a NB_Name_Recognized frame and a NETBIOS_NR
message will be returned to all Data Link Switches that have sent a
NETBIOS_NQ message.
The RESOLVE_PENDING state is exited once the data link has been
started (i.e., a DLC_DL_STARTED signal is received as a result of a
Test response received by the DLC) or a NB_Name_Recognized frame is
received (i.e., a DLC_DGRM signal is received). The target Data Link
Switch will then enter the CIRCUIT_PENDING state.
Note: The IBM 6611 will also send a Test command in order to
start the data link to the station that responded to the Name
Query frame (i.e., a DLC_START_DL will be issued).
4.2.2.3 CIRCUIT_PENDING State
Event Action(s) Next State
----- --------- ----------
Receive CONTACT DLC_CONTACT CONTACT_PENDING
Receive HALT_DL DLC_HALT_DL HALT_PENDING
Receive REACH_ACK If Connected: If Connected:
Send CONTACT CONNECT_PENDING,
else: CIRCUIT_ESTABLISHED
Receive XIDFRAME DLC_XID
Receive DGRMFRAME DLC_DGRM
Receive DATAFRAME DLC_DGRM
DLC_CONTACTED DLC_ENTER_BUSY
DLC_ERROR Send HALT_DL DISCONNECT_PENDING
DLC_XID Send XIDFRAME
DLC_DGRM Send DGRMFRAME
Dixon & Kushi [Page 25]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
The CIRCUIT_PENDING state is entered by the target Data Link Switch
following the sending of an ICANREACH message or the sending of a
NETBIOS_NR message. In this state it is awaiting the reception of a
REACH_ACK message from the origin Data Link Switch. If a connection
does not exist with the target station (i.e., the normal case), the
Data Link Switch will enter the CIRCUIT_ESTABLISHED state.
If the target Data Link Switch happens to receive a SABME command
from the target station while in the CIRCUIT_PENDING state (i.e., a
DLC_CONTACTED signal received from the DLC), the reception of the
REACH_ACK message will cause the Data Link Switch to enter the
CONNECT_PENDING state and to send a CONTACT message to the other Data
Link Switch. Thus the target Data Link Switch has assumed the role
of the origin Data Link Switch.
4.2.2.4 CONNECT_PENDING State
Event Action(s) Next State
----- --------- ----------
Receive CONTACTED DLC_EXIT_BUSY CONNECTED
Receive HALT_DL DLC_HALT_DL HALT_PENDING
Receive DGRMFRAME DLC_DGRM
Receive DATAFRAME DLC_DGRM
DLC_RESET Send RESTART_DL (See note) CIRCUIT_RESTART
DLC_ERROR Send HALT_DL DISCONNECT_PENDING
DLC_DGRM Send DGRMFRAME
The CONNECT_PENDING state is entered by the origin Data Link Switch
when a DLC_CONTACTED signal has been received from the DLC (i.e., a
SABME command has been received). A CONTACT message is then issued.
The state is exited upon the receipt of a CONTACTED message from the
target Data Link Switch. If a DLC_RESET signal is received, the
local data link is restarted and a RESTART_DL message is sent to the
remote DLS.
Note: The IBM 6611 will also send a Test command in order to
restart the data link to the station that sent the SABME command
(i.e., a DLC_START_DL will be issued).
Dixon & Kushi [Page 26]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
4.2.2.5 CIRCUIT_ESTABLISHED State
Event Action(s) Next State
----- --------- ----------
Receive CONTACT DLC_CONTACT CONTACT_PENDING
Receive HALT_DL DLC_HALT_DL HALT_PENDING
Receive XIDFRAME DLC_XID
Receive DGRMFRAME DLC_DGRM
Receive DATAFRAME DLC_DGRM
DLC_CONTACTED Send CONTACT CONNECT_PENDING
DLC_ENTER_BUSY
DLC_ERROR Send HALT_DL DISCONNECT_PENDING
DLC_DGRM Send DGRMFRAME
DLC_XID Send XIDFRAME
The CIRCUIT_ESTABLISHED state is entered by the origin Data Link
Switch from the DISCONNECTED state, and by the target Data Link
Switch from the CIRCUIT_PENDING state. The state is exited when a
connection is started (i.e., DLC receives a SABME command). The next
state is CONTACT_PENDING for the target Data Link Switch and
CONNECT_PENDING for the origin Data Link Switch.
4.2.2.6 CONTACT_PENDING State
Event Action(s) Next State
----- --------- ----------
Receive HALT_DL DLC_HALT_DL HALT_PENDING
Receive RESTART_DL DLC_HALT_DL RESTART_PENDING
Receive DGRMFRAME DLC_DGRM
Receive DATAFRAME DLC_DGRM
DLC_CONTACTED Send CONTACTED CONNECTED
DLC_ERROR Send HALT_DL DISCONNECT_PENDING
DLC_DGRM Send DGRMFRAME
The CONTACT_PENDING state is entered by the target Data Link Switch
upon the receipt of a CONTACT message. This causes the Data Link
Switch to issue a DLC_CONTACT signal to the DLC (i.e., DLC sends a
SABME command). This state is then exited upon the receipt of a
DLC_CONTACTED signal from the DLC (i.e., a UA response received).
If a RESTART_DL message is received, indicating that the remote Data
Link Switch has received a DLC_RESET signal, the local Data Link
Switch will send a DISC command frame on the adjacent LAN (i.e.,
DLC_HALT_DL signal) and enter the RESTART_PENDING state.
Dixon & Kushi [Page 27]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
4.2.2.7 CONNECTED State
Event Action(s) Next State
----- --------- ----------
Receive HALT_DL DLC_HALT_DL HALT_PENDING
Receive RESTART_DL DLC_HALT_DL RESTART_PENDING
Receive DGRMFRAME DLC_DGRM
Receive INFOFRAME DLC_INFO
Receive DATAFRAME DLC_DGRM
DLC_RESET Send RESTART_DL (See note) CIRCUIT_RESTART
DLC_ERROR Send HALT_DL DISCONNECT_PENDING
DLC_DGRM Send DGRMFRAME
DLC_INFO Send INFOFRAME
The CONNECTED state is entered by the origin Data Link Switch from
the CONNECT_PENDING state upon the receipt of a CONTACTED message.
The CONNECTED state is entered by the target Data Link Switch from
the CONTACT_PENDING state upon the receipt of a DLC_CONTACTED signal.
At this time, the target Data Link Switch will return a CONTACTED
message to the origin Data Link Switch.
The CONNECTED state is exited usually under one of two conditions: a
DLC_ERROR signal received from the DLC (e.g., a DISC command received
by the local DLC), or a HALT_DL message received from the other Data
Link Switch (e.g., a DISC command received by the remote DLC).
A SABME command (i.e., a DLC_RESET signal) received by either Data
Link Switch will also cause the two Data Link Switches to leave the
CONNECTED state and eventually restart a new circuit.
Note: The IBM 6611 will also send a Test command in order to
restart the data link to the station that sent the SABME command
(i.e., a DLC_START_DL will be issued).
Following the receipt of a reset signal, the Data Link Switch will
send a RESTART_DL message to the other Data Link Switch and will
enter the CIRCUIT_RESTART state. Upon the receipt of the RESTART_DL
message, the remote Data Link Switch will send a DISC command (i.e.,
DLC_HALT_DL signal) and enter the RESTART_PENDING state.
4.2.2.8 CIRCUIT_RESTART State
Event Action(s) Next State
----- --------- ----------
Receive DL_RESTARTED If Connected: If Connected:
Send CONTACT CONNECT_PENDING,
else: CIRCUIT_ESTABLISHED
Receive DATAFRAME DLC_DGRM
Dixon & Kushi [Page 28]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
DLC_ERROR Send HALT_DL DISCONNECT_PENDING
DLC_DGRM Send DATAFRAME
The CIRCUIT_RESTART state is entered if a DLC_RESET signal is
received from the local DLC. This was caused by the receipt of a
SABME command while a connection was currently active. A DM response
will be issued to the SABME command and the Data Link Switch will
attempt to restart the end-to- end circuit.
The CIRCUIT_RESTART state is exited through one of two transitions.
The next state depends upon the time the local DLC has reached the
contacted state (i.e., a DLC_CONTACTED signal is presented) relative
to the receipt of the DL_RESTARTED message. This signal is caused by
the origin station resending the SABME command that initially caused
the DATA Link Switch to enter the CIRCUIT_RESTART state. The two
cases are as follows:
1) DL_RESTARTED message received before the
DLC_CONTACTED signal- In this case, the
CIRCUIT_ESTABLISHED state is entered.
2) DL_RESTARTED message received after the
DLC_CONTACTED signal- In this case, the
CONNECT_PENDING state is entered.
4.2.2.9 DISCONNECT_PENDING State
Event Action(s) Next State
----- --------- ----------
Receive DL_HALTED DISCONNECTED
Receive HALT_DL Send DL_HALTED
Receive DATAFRAME DLC_DGRM
DLC_DGRM Send DATAFRAME
The DISCONNECT_PENDING state is entered when a DLC_ERROR signal is
received from the local DLC. Upon receipt of this signal, a HALT
message is sent. Once an DL_HALTED message is received, the state is
exited, and the Data Link Switch enters the DISCONNECTED state.
4.2.2.10 RESTART_PENDING State
Event Action(s) Next State
----- --------- ----------
Receive DATAFRAME DLC_DGRM
DLC_DL_HALTED (See note) Send DL_RESTARTED CIRCUIT_ESTABLISHED
DLC_ERROR Send HALT_DL DISCONNECT_PENDING
DLC_DGRM Send DATAFRAME
Dixon & Kushi [Page 29]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
The RESTART_PENDING state is entered upon the receipt of a RESTART_DL
message from the remote DLS while the local Data Link Switch is in
either the CONTACT_PENDING state or the CONNECTED state. These cause
the local DLC to issue a DISC command. Upon the receipt of the UA
response (DLC_DL_HALTED), the data link is restarted, a DL_RESTARTED
message is returned to the remote DLS, and the CIRCUIT_ESTABLISHED
state is entered.
Note: The IBM 6611 will send a Test command in order to restart
the data link to the target station (i.e., a DLC_START_DL will be
issued) prior to sending the DL_RESTARTED message.
4.2.2.11 HALT_PENDING State
Event Action(s) Next State
----- --------- ----------
Receive DATAFRAME DLC_DGRM
DLC_DL_HALTED Send DL_HALTED DISCONNECTED
DLC_ERROR Send DL_HALTED DISCONNECTED
DLC_DGRM Send DATAFRAME
The HALT_PENDING state is entered upon the receipt of a HALT_DL
message. This causes the local DLC to issue a DISC command. Upon
the receipt of the UA response (DLC_DL_HALTED), a DL_HALTED message
is returned to the remote DLS and the DISCONNECTED state is entered.
4.3. NetBIOS Datagrams
The NetBIOS protocols use a number of UI frames for directory
services and the transmission of datagrams. Most of these frames are
directed to a group MAC address (GA) with the routing information
field indicating spanning tree explorer (STE). Two of the frames,
NB_Add_Name_Response and NB_Status_Response, are directed to a
specific MAC address with the routing information field indicating a
specifically routed frame (SRF). The handling of these frames is
summarized in the following table.
Event Action(s) Comment
----- --------- -------
DLC_DGRM (NB Group Address): Send NETBIOS_ANQ Transmitted to all
NB_Add_Name_Query remote DLS
DLC_DGRM (Specific Address): Send NETBIOS_ANR Transmitted to
NB_Add_Name_Response specific DLS
DLC_DGRM (Specific Address): Send DATAFRAME Transmitted to all
NB_Status_Response remote DLS
DLC_DGRM (NB Group Address): Send DATAFRAME Transmitted to all
NB_Name_in_Conflict, remote DLS
NB_Add_Group_Name_Query,
Dixon & Kushi [Page 30]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
NB_Datagram,
NB_Datagram_Broadcast,
NB_Status_Query,
NB_Terminate_Trace
Table 5. NetBIOS DLC Frames
The above actions do not apply in the following states:
CIRCUIT_ESTABLISHED, CONTACT_PENDING, CONNECT_PENDING, CONNECTED, and
CIRCUIT_PENDING. The handling of the remaining two UI frames used by
NetBIOS systems, NB_Name_Query and NB_Name_Recognized, are documented
as part of the DLS state machine in the previous section (i.e.,
DISCONNECTED and RESOLVE_PENDING states). Furthermore, the handling
of NetBIOS datagrams (i.e., NB_Datagram) sent to a specific MAC
address is also governed by the DLS state machine.
Note: The IBM 6611 will also issue Test frames during the
exchange of the NetBIOS, NB_Name_Query and NB_Name_Recognized.
This exchange of protocol data units occurs during the start of a
data link and is used to determine the routing information. Most
other implementations of NetBIOS will use the
NB_Name_Query/NB_Name_Recognized exchange to determine routes in
conjunction with resolving the NetBIOS names. These differences
are not reflected in the SSP protocols.
The handling of the NetBIOS specific SSP messages is given in the
following table.
Event Action(s) Comment
----- --------- -------
NETBIOS_ANQ DLC_DGRM: Routed STE
NB_Add_Name_Query (NB Group Address)
NETBIOS_ANR DLC_DGRM: Routed SRF
NB_Add_Name_Response (Specific MAC Address)
NETBIOS_NQ DLC_DGRM: Routed STE
NB_Name_Query (NB Group Address)
NETBIOS_NR DLC_DGRM: Routed SRF
NB_Name_Recognized (Specific MAC Address)
DATAFRAME DLC_DGRM Routed STE
(If NB_Status_Response:
Specific MAC Address
Else: NB Group Address)
Table 6. NetBIOS SSP Messages
The above actions apply to all DLS states. The handling of NetBIOS
datagrams sent within DGRMFRAME messages is governed by the DLS state
machine. The DGRMFRAME message type is employed instead of the
Dixon & Kushi [Page 31]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
DATAFRAME message type once the end-to-end circuit has been
established. At that time, the message is addressed according to the
pair of Circuit IDs in the message header instead of relying upon the
MAC address information in the token ring header.
Acknowledgments
Randall Campbell, David Miller, Gene Cox, Ravi Periasamy, and The
Ghost of Christmas Past.
References
1) ISO 8802-2/IEEE Std 802.2 International Standard,
Information Processing Systems, Local Area Networks, Part 2:
Logical Link Control, December 31, 1989
2) The NETBIOS Frames Protocol, IBM Local Area Technical
Reference, SC30-3383-03, Chapter 5, December 1990
3) ISO/IEC DIS 10038 DAM 2, MAC Bridging, Source Routing
Supplement, December 1991
Security Considerations
Security issues are not discussed in this memo.
Dixon & Kushi [Page 32]
^L
RFC 1434 DLS: Switch-to-Switch Protocol March 1993
Authors' Addresses
Roy C. Dixon
IBM Networking Systems
Department B57, Building 060
P.O. Box 12195
Research Triangle Park, NC 27709
Phone: (919) 543-3380
EMail: rcdixon@ralvmg.vnet.ibm.com
David M. Kushi
IBM Research Division
T. J. Watson Research Center
Room H0-C07
30 Saw Mill River Road
Hawthorne, NY 10532
Phone: (914) 784-7815
EMail: kushi@watson.ibm.com
Note: Any questions or comments relative to the contents of this RFC
should be sent to the following Internet address:
dlsw@ralvma.vnet.ibm.com. This address will be used to coordinate
the handling of responses.
Dixon & Kushi [Page 33]
^L
|