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
|
Network Working Group J. Young
Request for Comments: 1307 A. Nicholson
Cray Research, Inc.
March 1992
Dynamically Switched Link Control Protocol
Status of this Memo
This memo defines an Experimental Protocol for the Internet
community. Discussion and suggestions for improvement are requested.
Please refer to the current edition of the "IAB Official Protocol
Standards" for the standardization state and status of this protocol.
Distribution of this memo is unlimited.
Abstract
This memo describes an experimental protocol developed by a project
team at Cray Research, Inc., in implementing support for circuit-
switched T3 services. The protocol is used for the control of
network connections external to a host, but known to the host. It is
documented here for the benefit of others who may wish to perform
further research.
While working with circuit-switched T3 networks, developers at Cray
Research, Inc., defined a model wherein a host would generate control
messages for a network switch. This work is described in RFC 1306,
"Experiences Supporting By-Request Circuit-Switched T3 Networks". In
order to simplify the model it was decided that the inconsistencies
of switch control should be hidden from the host generating the
control messages. To that end, a protocol was defined and
implemented. This RFC documents the Dynamically Switched Link
Control Protocol (DSLCP), which is used for creation and control of
downstream network links by a host.
1.0 INTRODUCTION
The Dynamically Switched Link Control Protocol (DSLCP) allows a host
with knowledge of a special downstream network link to issue messages
to control the status of that link.
This document describes the functions of the DSLCP to control
external network connections.
Young & Nicholson [Page 1]
^L
RFC 1307 Dynamically Switched Link Control Protocol March 1992
1.1 Motivation
Circuit Switched Networks are becoming available to the Internet
community. These networks are made available by requesting a
connection through a switch. Normally circuit switched network links
are disconnected, and their prohibitive cost suggests that it is very
costly to leave them connected at all times.
Internet users and hosts wish to send data over a circuit switched
networks, but only connect the network links when a transport
connection is to be established. While it would be possible to use
packet routers to identify the need for switching a connection on and
off, only the transport provider can positively identify the
beginning and end of a transport session. There must be a mechanism
to activate and deactivate the link at the beginning and end of a
transport session.
The DSLCP assumes that a transport provider has knowledge of a
downstream link which must be setup before data transfer may take
place. However, the details of link setup may vary by the type of
link (circuit-switched or other), specific hardware, or
administrative differences. The DSLCP hides these details from the
transport provider by offering a simple request/release model of link
preparation. The model assumes an entity in control of the link
which handles the details of connection preparation while responding
to the DSLCP commands of the transport provider. This entity is
called the link controller.
The DSLCP allows internet hosts to dynamically change the fabric of
the internet by sending messages through the internet in advance of
data which is to travel across the newly created links.
1.2 Scope
DSLCP is intended to provide an interface between transport providers
and arbitrary network links requiring creation, control, setup, or
conditioning before data communications may take place.
1.3 Interfaces
There are no specific user level interfaces to DSLCP, although they
are not precluded. Link control is a function of the network layer,
initiated by requests from the transport provider.
A DSLCP transaction is defined as a transport provider communicating
with a link controller for the duration of transport session. A
network path between the host providing transport services and the
link controller must exist in advance of the DSLCP transaction.
Young & Nicholson [Page 2]
^L
RFC 1307 Dynamically Switched Link Control Protocol March 1992
Either party to an DSLCP transaction may asynchronously generate
messages.
1.4 Operation
The purpose of the DSLCP is to allow a transport provider to request
the setup of a downstream network link so that data transfer may take
place through that link. DSLCP messages are assumed to be
communicated between the transport provider and the link controller
through a transport service, such as UDP or TCP, or through a network
service such as IP.
DSLCP provides messages for link setup and teardown. All the details
of link management are left to the link controller. The transport
provider is interested only whether the link is ready to carry data.
1.5 Transmission
DSLCP messages are carried through the network in datagrams using
either IP or UDP. DSLCP is designed to not require a reliable
transport protocol.
2.0 DSLCP Architecture
DSLCP is used in a host environment. Normally, transport users on
the host will make requests of a transport provider to carry data to
other hosts. Some of these requests may require the preparation of a
downstream network link. The transport provider has knowledge of
these special network links, and issues a request to DSLCP that the
link be prepared to carry data. This happens transparently to the
transport user.
When a transport user requests transport services, the transport
provider will normally attempt to establish a connection. In the
event the transport provider discovers that the connection requires
special link control, the transport provider will call upon DSLCP to
send a link setup message to the link controller. The transport
provider does not attempt to use the connection until DSLCP informs
the transport provider that the link is setup or that the setup
attempt failed. If the setup failed, then the transport provider is
free to attempt to find another way to create a connection.
When the transport user is finished using the services, then the
transport provider will call DSLCP to release the link. The
transport provider may now assume that the link is no longer
available.
In general, DSLCP maintains and hides the status of link control
Young & Nicholson [Page 3]
^L
RFC 1307 Dynamically Switched Link Control Protocol March 1992
transactions from the transport provider. This way the transport
provider does not need to keep track of multiple DSLCP transactions.
For example, if the transport provider requests a link be setup for a
new transport user while another transport user has the link active,
the DSLCP may inform the transport provider that the link is ready
without delay, provided that the link can support multiple transport
connections.
3.0 FUNCTIONAL SPECIFICATION
This document specifies both a message format and a state machine for
DSLCP protocol transactions.
3.1 Control Message Format
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifier | Total length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Function | Event Status |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Endpoint 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Endpoint 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Body |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Identifier: 16 bits
The identifier is a value assigned by the DSLCP used to uniquely
identify link setup transactions. It is intended to be used with
the endpoint addresses by a link controller to identify a
transaction.
Total length: 16 bits
The total length, in octets, including the header of this DSLCP
control message.
Function: 16 bits
The operation to be processed or being responded to.
Functions currently defined are:
Young & Nicholson [Page 4]
^L
RFC 1307 Dynamically Switched Link Control Protocol March 1992
Bring up value 0
Bring down value 1
Event Status: 16 bits
The state of the controlled link, relative to the last function
request.
The possible event states are:
Setup request succeeded value 2
Setup request failed value 3
Teardown request succeeded value 4
Teardown request failed value 5
Asynchronous network down value 7
Endpoint addresses: 32 bits each
The internet addresses of the two communicating parties for which
the link is being prepared.
Message body: arbitrary length up to 65499 octets
An ascii string which is meaningful the link controller. When the
requesting host is configured, the system administrator sets the
control strings for each network link that may be accessed by the
requesting host.
3.2 State Machine
The transport provider is aware of only 2 possible states for the
controlled link: up or down. Furthermore, transport users may
request or release transport services from the transport provider at
any time. Thus, there must be a state machine employed by DSLCP when
communicating between the transport provider and the controlled link.
This state machine hides the details of link control transactions
from the transport provider. The state machine has 6 possible
states.
Down: There is no active transport connection and the controlled
link is not setup.
Coming Up: A transport user has requested a connection for which
the transport provider has given a setup request to the DSLCP.
The DSLCP has sent a setup request to the link controller and is
awaiting a response.
Up: At least one transport connection is active and the
controlled link is setup.
Young & Nicholson [Page 5]
^L
RFC 1307 Dynamically Switched Link Control Protocol March 1992
Going Down: All transport connections have been terminated and
the transport provider has sent an equivalent number of up
requests and down requests to the DSLCP. The DSLCP has sent a
teardown request to the link controller and is awaiting a
response.
Bring Down: While DSLCP is in the Coming Up state, the transport
provider requested link teardown. As soon as a response is
received from the link controller, the DSLCP will send a
teardown request if the link setup was successful.
Bring Up: While in the Going Down state, the transport provider
requested connection setup. As soon as a response is received
from the link controller, the DSLCP will send a setup request.
Young & Nicholson [Page 6]
^L
RFC 1307 Dynamically Switched Link Control Protocol March 1992
DSLCP state diagram:
------- +----------------+
Transport | Down |<---------\
Connect ---->+----------------+ \
Request / ^ ^ \
------- Setup | | \
Send Failed | | Teardown \ Response Timeout
Setup /------ | | Success \ ---------------
/ / | | -------- |
| | | | |
| | | | |
| | Teardown Response | | |
| | Success Timeout | | |
| | ----------------- | | +----------+ |
| | Send---------|--|-----| Bring Up |--|----\
| | Setup | | +----------+ | | Transport
| | / | | ^ | | Teardown
| | / | | Transport | | Request
| | / | | Connect| | | ---------
| | / Setup | Request| | |
| | | Failed | -------| | |
v | v ------ | | | v
+--------------+ | | +-------------+
| Coming Up |----------+----|--|--Response--->| Going Down |
+--------------+ ^ | | Timeout +-------------+
| ^ | | | | -------- ^ ^
| | Transport | | | Send | |
| Transport Teardown | | | Teardown | |
| Connect Request | | | / |
| Request ------- | | | / |
| ------- v | | | / /
| \ +------------+ - | | / /
| -| Bring Down | ------ | / /
\ +------------+ --------|--Setup----- /
\ | Success /
\ | ------- /
\ Setup Network | Send / Transport
\ Success Is Down | Teardown / Teardown
\ ------- ------- | / Request
\ | / --------
\ | / Send
\ +---------------+ / Teardown
\----------->| Up |---
+---------------+
Young & Nicholson [Page 7]
^L
RFC 1307 Dynamically Switched Link Control Protocol March 1992
Events and State Transitions
The DSLCP will process three type of events:
A link control request from the transport provider
An DSLCP message from the link controller
DSLCP message timeout
The transport provider will make link setup and and teardown requests
to the DSLCP when transport users request and release services
requiring link control operations. The transport provider should not
keep track of the status of a particular link, as this is a function
of the DSLCP. The transport provider may be unaware of redirection
or other processing of link setup requests performed by DSLCP, so
this is a function best left to DSLCP. The DSLCP will inform the
transport provider as to the success or failure of a particular setup
request, and transport providers may assume the success of teardown
requests (the DSLCP will always return a success response to a
teardown request).
The DSLCP will engage in link control transactions with link
controllers. This will include accepting messages from link
controllers in response to requests as well as unexpected messages
from the link controller. Unexpected messages may include redundant
responses to redundant requests sent as a result of timeouts.
Because of the possibility of unavailable links and link controllers,
DSLCP should not wait indefinitely for message responses from link
controllers to which it has sent messages. Since DSLCP does not
require the use of a reliable transport protocol to carry DSLCP
messages, DSLCP must have a timeout and retransmission mechanism.
Since we have used DSLCP in a local network context with switch
controllers which offer a quick turnaround (on the order of 1
second), we use a 5 second timeout with a 3 retransmit limit. These
figures would require adaptation to different network and link
controller configurations, and a self-adapting algorithm would be
most appropriate for a general solution.
The specific events of interest to the DSLCP are:
Transport provider link setup request
Transport provider link teardown request
Link setup request failed
Link setup request succeeded
Link teardown request succeeded
Link teardown request failed
Network link is down
Young & Nicholson [Page 8]
^L
RFC 1307 Dynamically Switched Link Control Protocol March 1992
Timeout waiting for DSLCP response from link controller
The necessary processing for each event while in each state is as
follows:
Transport provider link setup request
Down:
Send setup request to link controller.
Enter Coming Up state.
Notify transport provider to wait until link is up.
Coming Up:
Bring Up:
Notify transport provider to wait until link is up.
Up:
Notify transport provider that link is up.
Bring Down:
Enter Coming Up state.
Notify transport provider to wait until link is up.
Going Down:
Enter Bring Up state.
Notify transport provider to wait until link is up.
Discussion:
If the controlled link is not capable to support multiple
transport connections, then the DSLCP must return
appropriate errors when it detects multiple transport setup
requests for that link.
Transport provider link teardown request.
Down:
Bring Down:
Going Down:
Notify transport provider that link is down.
Coming Up:
Enter Bring Down state.
Notify transport provider that link is down.
Bring Down:
Notify transport provider that link is down.
Young & Nicholson [Page 9]
^L
RFC 1307 Dynamically Switched Link Control Protocol March 1992
Up:
Send teardown request.
Enter Going Down state.
Notify transport provider that link is down.
Link setup request failed
Down:
Going Down:
Bring Up:
Unexpected message, possibly due to duplicate requests -
ignore it.
Up:
Unexpected message, link controller may be refusing
multiple setup requests sent because of timeout - ignore
it.
Coming Up:
Bring Down:
Enter down state.
Link setup request succeeded
Down:
Unexpected message, possibly due to duplicate requests
and reordering of request packets by network.
Send teardown request.
Going Down:
Bring Up:
Up:
Unexpected message, possibly due to duplicate requests -
ignore it.
Coming Up:
Enter Up state.
Notify transport provider(s) waiting for link that it is
available.
Bring Down:
Send teardown request.
Enter Going Down state.
Link teardown request succeeded
Down:
Coming Up:
Young & Nicholson [Page 10]
^L
RFC 1307 Dynamically Switched Link Control Protocol March 1992
Bring Down:
Unexpected message, possibly due to duplicate requests -
ignore it.
Up:
Unexpected message, possibly due to duplicate requests
and reordering of request packets by network.
Send teardown request.
Enter Going Down state.
Notify transport providers that link has gone down.
Bring Up:
Send setup request
Enter Coming Up state
Going Down:
Enter Down state
Discussion:
If a teardown request succeeded message arrives when the
DSLCP is in the UP state, then some error has occurred, and
the conservative approach is to bring down the connection
and resynchronize. However, it may be satisfactory to
ignore the message without ill effect.
Link teardown request failed
Down:
Coming up:
Bring Down:
Bring Up:
Going Down:
Up:
DSLCP sent a teardown request message for an invalid
transaction. The link controller has no
identifier/endpoints transaction record for the request.
Continue as if request had succeeded.
Network link is down
Down:
Ignore message.
Bring Down:
Going Down:
Enter Down state.
Young & Nicholson [Page 11]
^L
RFC 1307 Dynamically Switched Link Control Protocol March 1992
Coming up:
Bring Up:
Up:
Enter down state.
Notify transport provider that link is down.
Timeout waiting for DSLCP response from controller
Down:
Up:
DSLCP protocol error - fix bug, don't set timer when
there are no outstanding requests.
Coming Up:
Bring Down:
Send teardown request.
Enter Going down state.
Going Down:
Enter Down state.
Bring Up:
Send setup request.
Enter Coming Up state.
References
[1] Nicholson, et. al., "High Speed Networking at Cray Research",
Computer Communications Review, January, 1991.
[2] Nicholson, A., and J. Young, "Experiences Supporting By-Request
Circuit-Switched T3 Networks", RFC 1306, Cray Research, Inc.,
March 1992.
Security Considerations
Security issues are not discussed in this memo.
Young & Nicholson [Page 12]
^L
RFC 1307 Dynamically Switched Link Control Protocol March 1992
Authors' Addresses
Jeff Young
Cray Research, Inc.
655F Lone Oak Drive
Eagan, MN 55123
Phone: (612) 452-6650
EMail: jsy@cray.com
Andy Nicholson
Cray Research, Inc.
655F Lone Oak Drive
Eagan, MN 55123
Phone: (612) 452-6650
EMail: droid@cray.com
Young & Nicholson [Page 13]
^L
|