Programming Priorities

The DS has five programming methods: serial , out-of-band UDP , inband TCP , command-phase TCP , and telnet programming . For the subject discussed below inband and command-phase programming are the same since they both take place within a data TCP connection. Therefore, four programming methods will be discussed: serial, out-of-band, inband/command-phase, and telnet.

Since all four programming methods can be used at the same time the DS maintains priority mechanism to avoid conflicts that might arise if attached serial device and the network host(s) attempted to program the DS at the same time.

Serial programming has the highest priority of all- any command sent to the DS via the serial interface (in the serial programming mode) is always accepted and processed*, regardless of whether any form of network programming is (has been) taking place at the time.

As explained in authentication , all network commands can be divided into those that do not require any authentication, commands that require immediate authentication, and commands that require prior login using Login (L) command (commands that need a programming session to be opened).

Network commands that do not require authentication can be sent at any time, using any method. For example, network Echo (X) command will be accepted and processed even when the DS is in the serial programming mode.

Network Commands that require immediate authentication can be sent at any time and using any method, as long as the DS is not in the serial programming mode. When the DS is in the serial programming mode these commands are rejected ( R reply code ).

For network commands that require prior login the following hierarchy of priorities is applied:

Serial programming (highest priority)
Out-of-band programming session
Telnet programming session
Inband or command-phase programming session (lowest priority)

The above should be understood as follows:

Programming session using lower-priority programming method cannot start while higher-priority programming session is in progress. For example, programming session using out-of-band commands cannot start while the DS is in the serial programming mode. Programming session using TCP connection to telnet port cannot start while out-of-band session is in progress.
Higher-priority programming can start at any time, even when lower-priority programming session was already in progress. In this case lower-priority programming session is aborted immediately. Thus, if out-of-band programming session was already opened and the DS enters a serial programming mode then out-of-band programming session is aborted.
Programming session that is already opened cannot be interrupted by the same priority level programming session. The DS allows several simultaneous TCP connections to telnet port 23. Only one of these connections, however, can carry a programming session at any given time. Attempt to login through another TCP connection to port 23 will be rejected for as long as the earlier session remains opened.  

* As long as this command is allowed to be sent through the serial port at all. Command table at commands, messages, and replies details which commands can be issued through the serial port (see 'S' column).