Bridge Enquiry Protocol ======================= A bridge can be interrogated to find the number of the local networks and the numbers of any other bridges on the network. In addition to these calls bridges also responds to reset messages and a normal data transfer message. To interrogate bridges it is necessary to set up a receive block to receive status information, and then broadcast to them. Thus the process for communicating bridges is: 1) Set up a receive block to listen to all on a specified port. 2) Broadcast the bridge enquiry specifying the port to reply on. 3) Poll the receive block until a reply is received or a timeout occurs. 4) If the polling time was excessive delete the receive block and finish. 5) Read the receive block and return results. BridgeReset - reset network tables ---------------------------------- Transmit: 0 +-----------------------------+ | &80 = BridgeReset | 1 +-----------------------------+ | port = &9C | 2 +-----------------------------+ | &FFFF | 4 +-----------------------------+ | known networks | n +-----------------------------+ ResetReply - reply to BridgeReset --------------------------------- Transmit: 0 +-----------------------------+ | &81 = ResetReply | 1 +-----------------------------+ | port = &9C | 2 +-----------------------------+ | &FFFF | 4 +-----------------------------+ | known networks | n +-----------------------------+ WhatNet - find the local network number --------------------------------------- Transmit: 0 +-----------------------------+ | &82 = WhatNet | 1 +-----------------------------+ | port = &9C | 2 +-----------------------------+ | &FFFF | 4 +-----------------------------+ | "BRIDGE" | 10 +-----------------------------+ | reply port | 11 +-----------------------------+ | &00 | 12 +-----------------------------+ The receive block will be updated to hold: 0 +-----------------------------+ | Control block number | 1 +-----------------------------+ | &82 = WhatNet | 2 +-----------------------------+ | port = &9C | 3 +-----------------------------+ | station = &00 | 4 +-----------------------------+ | network = net on other | | side of bridge | 5 +-----------------------------+ | Pointer to start of data | 9 +-----------------------------+ | Pointer to end of data | 13 +-----------------------------+ The returned data block will be 2 bytes long and will contain: 0 +-----------------------------+ | local network number | 1 +-----------------------------+ | byte 11 from transmission | 2 +-----------------------------+ If there is no local bridge, there will be no reply. IsNet - does the specified network exist ---------------------------------------- Transmit: 0 +-----------------------------+ | &83 = IsNet | 1 +-----------------------------+ | port = &9C | 2 +-----------------------------+ | &FFFF | 4 +-----------------------------+ | "BRIDGE" | 10 +-----------------------------+ | reply port | 11 +-----------------------------+ | queried network number | 12 +-----------------------------+ The receive block will be updated to hold: 0 +-----------------------------+ | Control block number | 1 +-----------------------------+ | &83 = IsNet | 2 +-----------------------------+ | port = &9C | 3 +-----------------------------+ | station = &00 | 4 +-----------------------------+ | network = net on other | | side of bridge | 5 +-----------------------------+ | Pointer to start of data | 9 +-----------------------------+ | Pointer to end of data | 13 +-----------------------------+ The returned data block will be 2 bytes long and will contain: 0 +-----------------------------+ | local network number | 1 +-----------------------------+ | queried network number | 2 +-----------------------------+ If there is no local bridge, or if the specified network is unreachable, there will be no reply.