Method of establishing transmission group numbers for network links

Abstract: A method is disclosed for allowing two nodes (12, 14) in a communications network to dynamically establish the transmission group number used to partially identify a given link (18) between the nodes. When the link is being activated, both nodes simultanesouly propose either a zero or a non-zero number to each other in an exchange of exchange identification (XID) messages. If only one of the nodes proposed a non-zero number, that non-zero number is selected as the transmission group number. If both nodes had proposed zero or both had proposed non-zero numbers, predetermined criteria are employed to select a controlling node. The controlling node chooses the final transmission group number and communicates that choice to the non-controlling node.

Description: The present invention relates to communication networks and more particularly to a method for permitting two partner nodes to dynamically establish a transmission group number used to identify a link between the two nodes. For purposes of the following description, the communications network can generally be defined as a collection of network nodes which are interconnected through communications links. A network node can be characterized as a data processing system that provides certain functions within the network, such as routing of messages between itself and its adjacent or neighboring nodes, selection of routes for messages to be transmitted between a network node and a directly-connected peripheral node and the furnishing of directory services to peripheral nodes. The links between nodes may be permanent communications links, such as conventional cable connections, or links that are enabled only when needed, such as dial-up telephone connections. In establishing a connection between any two nodes, it is necessary that the link between the two nodes be assigned an identifier unique within the entire network. Conventionally, a link is identified by concatenating network-qualified names for the two nodes connected by the link with a number assigned to a transmission group for connection between the two nodes. A network-qualified node name is a name which is known to be unique in the network. These network-qualified node names are assigned when the system is initially defined or when the node is later added to the network. Since the node names are unique within the network, a given link between two nodes is unambiguously identified by any given transmission group number applied to a link between the two nodes. Ambiguity is created where the same transmission group number is applied to more than one of several parallel links which can be used to connect the nodes. According to the prior art, a transmission group number is assigned to each link between two partner nodes when the system is initially defined or when one or both of the nodes are added to the network. The requirement that transmission group numbers be assigned at the time of system definition or system reconfiguration adds to the cost and complexity of network operation. The present invention eliminates the requirement that transmission group numbers be assigned during system definition/reconfiguration by allowing two paired or partner nodes to dynamically establish a unique transmission group number for each link between the nodes. The method is performed at each of the two nodes during initialization of a connection. Each node sends an exchange identification message to the remote node. The method includes a proposed exchange identification message to the other node. A message includes a proposed non-zero transmission group number if one had been previously defined or a zero transmission group number if no non-zero number has been previously defined. Each node determines the value of the transmission group number contained in the message received from the remote node. If one of the nodes sends a zero while the other node sends a non-zero number, the non-zero number is selected by both nodes. If both nodes send zeros or both send non-zero numbers, both nodes compare the relative significance of their node names according to predetermined criteria. The node having the most significant node name is selected. The selected node assigns a final non-zero transmission group number. While the technical description concludes with claims particularly pointing out and distinctly claiming that which is regarded as the present invention, details of a preferred embodiment of the invention may be more readily ascertained from the following technical description when read in conjunction with the accompanying drawings, where: Figure 1 is a high-level block diagram of a communications network; Figure 2 is a high-level flow chart to be used in providing an initial, brief description of the invention; Figure 3, consisting of Figures 3A and 3B, is a more detailed flow chart of a preferred method for establishing transmission group numbers; and Figure 4 is a flow chart of a preferred method for establishing the relative significance of network-qualified names assigned to two partner nodes. Referring to Figure 1, a simple data communications network 10 is shown as having three nodes 12, 14 and 16 interconnected through links 18, 20 and 22. Referring to link 18 as an example, each link includes a link connection which provides a connection between a first link station 26 in one of the nodes and the second link station 28 in the other of the nodes. The link connection represents the physical medium, such as telephone wire or a microwave beam used to transmit data between the two link stations in the nodes. Expanded definitions of these terms may be found in a number of publications, including Systems Network Architecture Concepts and Product (No. GC30-3072), Systems Network Architecture Technical Overview(No GC30-3073) and System Network Architecture Format and Protocol Reference Manual : Architecture Logic for Type 2.1 Nodes (No SC30-3422). While these publications may be useful to a reader, they are not essential to an understanding of the invention. The function of the data communications network is to establish and maintain routes or paths which allow two end users to exchange data through the network. An end user may either be an individual at a workstation, such as any of a number of workstations 30 connected to the different nodes in the network, or an application for transaction program, such as program 32 connected to node 12 or program 34 connected to node 16. Each end user is connected to the network through a logical unit or LU which manages the exchange of data. LUs are connected in a mutual relationship called a session. An example of a logical unit or LU is LU 36 in node 12. The establishment of a connection between two end users at different nodes requires that each link in the route between the end users be unambiguously identified. For example, if an operator at workstation 30 was to communicate with the application program 32 at node 12, either of two routes could be specified. The more direct route would be through link 18 connecting nodes 12 and 14. An indirect route, which might be needed if link 18 were unavailable would be through link 20 connecting nodes 14 and 16 and then link 22, connecting nodes 16 and 12. Each of these links must be identified to the two nodes at opposite ends of the link. These two nodes may be referred to herafter as paired or partner nodes since each has responsibilities in establishing and maintaining the link. The link identification is a concatenated word consisting of the names of each of the two partner nodes in combination with the transmission group number, which is a number used to identify what is usually one of several possible link connections between the same two nodes. As noted earlier, the prior art practice was to assign a transmission group number to each possible line between two nodes at the time of system definition. The present invention improves upon this prior practice by allowing the two partner nodes to dynamically assign a transmission group number as part of the link activation or establishment process. Figure 2 is a short flow chart which provides an overview of the process of establishing a transmission group number. Referring to that figure, both nodes propose a transmission group number (block 40) in a transmission of exchange identification (XID) to the other node. An XID message is used by a given node to convey node and link characteristics to an adjacent node. It is exchanged between link sessions before and during link activation to establish and negotiate link and node characteristics. The format and content of XID messages are described in more detail in the earlier-referenced publications. The transmission group number proposed by a node may either be a zero or a non-zero number. Conditions under which a node must propose a zero transmission group number or a non-zero transmission group number are explained in more detail later. Each node checks (block 42) to see whether has proposed either zero transmission group numbers or non-zero transmission group numbers. If only one of the nodes has proposed a zero transmission group number, then both nodes utilize the non-zero transmission group number (block 44), regardless of which node originally proposed it. If, on the other hand, the check in block 42 indicates that both nodes proposed either a zero transmission group number or any non-zero transmission group number, then one of the two nodes must be identified as a controlling node. A preferred mechanism for identifying the controlling nodes is described in more detail later. Once the controlling node is selected, that node sets the transmission group number to be used (block 46) and transmits the selected number to the other or non-controlling node. Figure 3, consisting of Figures 3A and 3B taken together, is a more detailed flow chart of the steps performed at each of two partner nodes in order to negotiate a transmission group number acceptable to both. In reviewing the flow chart, it must be kept in mind that each node performs the same series of steps. Where the description refers to a transmisson group number being sent, that is the number sent by that node. Obviously, the transmission group number sent by one node would be the transmission group number considered as having been received by the other node. The first step (block 48) in the process of establishing a transmission group number requires that each node check to see whether a transmission group number has already been defined for the node pair. If a number has been defined, a further check (block 50) is made to determine whether that number is already in use. If it is, the node selects a different non-zero value (block 52). If the defined number is not in use, the transmission group number is set (block 54) to the previously defined value. If check 48 shows that no transmission group number was previously defined, the node sets the proposed transmission group number equal to zero (block 56). The transmission group number selected by one of the operations 52, 54 or 56 is sent to the other node (block 58) as part of an exchange of XID three messages. As mentioned earlier, the format of XID messages in general and XID three messages, in particular, is more fully set forth in the referenced publications. When a node receives the XID three messages transmitted by the other or remote node (block 60), a check (block 62) is made to determine whether the transmission group number proposed by the other node is equal to zero. Assuming the results of check 62 are positive, a further check (block 64) is made to determine whether the transmission group number proposed by the local node is also equal to zero. If the local node proposed a non-zero number, that non-zero number is selected (block 66) as the final transmission group number. Under those conditions, it is not necessary for the local node to inform the remote node of the selected transmission group number. The remote node will, by performing the operations set forth in Figure 3, make its own determination that the non-zero transmission group number should be finally selected. If check 64 indicates that the transmission group numbers set by the local node is zero, meaning that both nodes have proposed zero transmission group numbers, it is necessary to choose a controlling node which will assume the responsibility of selecting a non-zero transmission group number. The first step in choosing a controlling node is to compare the relative value of the network-qualified node names (block 68) according to some predetermined criteria. Since both nodes are, by definition, in the same network and since the network-qualified node name for any given node is unique within that network, the comparison performed will always show that one of the two nodes has a more "significant" name according to some criteria. A preferred method of choosing the controlling node will be described later. Once the comparison is carried out, a check is made (block 70) to detemine whether the name of the local node is more significant than the name of the remote node. If the local name is more significant, the local node chooses the final non-zero transmission group number (block 72). A new XID three message is transmitted (block 74) to the remote node with the finally selected transmission group number. If the check mate in block 70 had indicated that the local node name was less significant according to the predetermined criteria than the remote node name, the local node would, in essence, defer to the remote node since the remote node would have assumed the responsibility for selecting a final transmission group number and transmitting that number. If the check at block 62 had indicated that the received transmis- sion group number was not equal to zero, a further check (block 76) is made to determine whether the transmission group number proposed by the local node is equal to zero. If the locally proposed transmission group number was equal to zero, the local node would set the final transmission group number equal to the number received from the other node (block 78) before leaving the program. If the checks made at blocks 62 and 76 had indicated that both nodes had proposed non-zero transmission group numbers, the relative values of the node names are compared (block 80) using the previously-mentioned criteria. If the local node name is found (block 82) to have the more significant value, the final transmission group number is set equal to the transmission group number proposed by the local node (block 84) before exiting the program. If decision block 82 showed that the remote node name was more significant, the local node would set the final transmission group number equal to the transmission group number proposed by the remote LU (block 86) and notify the remote node of its acquiesence by transmitting a second XID three message (block 88) to the remote node with a transmission group number equal to zero. While different criteria might be used to determine which node name is more significant, one preferred method will be described with reference to Figure 4. That method basically uses a standard collating sequence to determine which node name has the greater value in the sequence. The initial step in the process (block 90) is to determine whether both the local node name and the remote node name are the same length. If they are not, the shorter node name is padded with zeros (block 92) until the lengths are equal. Once the name lengths are equal, the first byte of the local node name is compared to the first byte of the remote node name (block 92) to determine whether the bytes have the same value. Assuming they do, the byte value is altered (block 94) an check 92 repeated with the next byte in the two node names. When a point is reached at which the byte values differ (as must happen since the nodes have unique names within the network), a check is made (block 96) to see whether the value of the byte in the local name is greater than the value of the corresponding byte in the remote node name. If the "local byte" has a greater value in the collating sequence than the "remote byte", the local node is identified (block 98) as having the more significant node name. The local node becomes the controlling node for purposes of finally selecting a transmission group number. If check 96 had shown that a given byte in the remote node name was more significant than the corresponding byte in the local node name, the remote node would be identified (block 100) as having the more significant value and would be selected as the controlling node.

Claims: Method for establishing transmission group numbers in a communications network (10) wherein selected pairs of nodes (12, 14) may be selectively directly connected by transmission groups, each transmission group being uniquely identified as a function of the names of the paired nodes (12, 14) in combination with an assigned transmission group number, said method allowing one of the nodes to assign the transmission group number and being performed at each of the two nodes during initialization of the connection, said method comprising the steps of: sending (40) an exchange identification message (XID) a first node to a second node, said message including a proposed non-zero transmission group number if one had been previously determined at the sending node or a zero transmission group number if no non-zero transmission group number had been previously determined, determining the value of the transmission group number contained in the exchange identification message received from the second node, setting the final transmission group number equal to the proposed non-zero transmission group number sent by one of the first and second nodes where the other of the nodes originally sent a zero transmission group number, comparing (68) the relative significance of the first and second node names according to predetermined criteria where both nodes send either zero transmission group numbers or proposed non-zero transmission group numbers, selecting (70) the node having the more significant node name according to the predetermined criteria, and causing (72) the selected node to assign a final non-zero transmission group number where both nodes originally sent zero transmission group numbers or where both nodes originally sent proposed non-zero transmission group numbers. The method as defined in Claim 1 wherein the step of sending an exchange identification message (XID) is preceded by the steps of: determining (48) whether a proposed non-zero transmission group number is already in use between the first and second nodes, and selecting (50, 52) a different proposed non-zero transmission group number if the originally proposed number is determined to be in use. The method defined in either of Claims 1 or 2 including the additional step of : having the non-selected node acknowledge its acceptance of the final non-zero transmission group number by sending the selected transmission group number to the selected node. The method as defined in Claim 1, 2 or 3 wherein said selecting step comprises the steps of: comparing (90, 92, 93, 94) the names of the first and second nodes to determine the relative values of the names in a standard collating sequence, and selecting (96, 98, 100) the node having the name of higher value. The method as defined in Claim 1 wherein the step of sending an exchange identification XID method is preceded by the steps of: determining whether a zero transmission group number had been transmitted to the second node the first time a connection between the two nodes was initiated; and sending a non-zero transmission group number only if a zero transmission group number had not been transmitted to the second node at the first connection initiation.

Inventors: GRAY JAMES PEYTON, KNAUTH JEFFREY GALE, POZEFSKY DIANE PHYLIS, RAFALOW LEE MARK, GRAY, JAMES PEYTON, KNAUTH, JEFFREY GALE, POZEFSKY, DIANE PHYLIS, RAFALOW, LEE MARK
Applicants: IBM, INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1989
Main classification: H04L12
IPC codes: H04L29, H04L12