WO1995022216A1 - Repeater information base for snmp network management statistics accumulation - Google Patents

Repeater information base for snmp network management statistics accumulation Download PDF

Info

Publication number
WO1995022216A1
WO1995022216A1 PCT/US1994/010074 US9410074W WO9522216A1 WO 1995022216 A1 WO1995022216 A1 WO 1995022216A1 US 9410074 W US9410074 W US 9410074W WO 9522216 A1 WO9522216 A1 WO 9522216A1
Authority
WO
WIPO (PCT)
Prior art keywords
management
memory
register
data
cpu
Prior art date
Application number
PCT/US1994/010074
Other languages
French (fr)
Inventor
David John Green
Kambiz Ali Ansari
Original Assignee
National Semiconductor Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National Semiconductor Corporation filed Critical National Semiconductor Corporation
Publication of WO1995022216A1 publication Critical patent/WO1995022216A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0847Transmission error

Definitions

  • the present invention relates to network management systems, repeaters, and hubs and, more particularly, to a repeater information base (RIB) which can be used in a repeater or hub for assisting in the accumulation of Simple Netwoik Management Protocol (SNMP) netwoik management statistics and data.
  • ROB repeater information base
  • SNMP Simple Netwoik Management Protocol
  • a local area network is a communications system that provides interconnection among a number of independent computing stations within a small area, such as a single building or a group of adjacent buildings.
  • An excellent overview of local area network concepts and technology is set forth in William Stallings' textbook Local Networks. Third Edition, MacMillan Publishing Company, 1990.
  • Networks are typically constructed from routers, bridges, repeaters, and hubs. End users that hook to the network, e.g., a desktop computer, provide a network node. Routers and bridges, intelligently or blindly, direct network traffic. Repeaters and hubs are most often employed to concentrate, amplify, and restructure incoming signals.
  • a protocol is a set of semantic and syntactic rules that determines the behavior of functional units in achieving communication.
  • Repeaters and hubs are physical units and typically include several ports, sometimes numbering in the hundreds. Ports provide a physical way to build a network; specifically, ports are most often used to connect to nodes, but a port can be used to connect one network to another.
  • netwoik As the netwoik size grows, so too does the complexity and the probability of failure.
  • a netwoik administrator addressed failures by strategically isolating and testing specific points in the netwoik. This time consuming task required the administrator to have a thorough knowledge of physical locations and specialized skills in interpreting the results. Complexity often surmounts under conditions where "soft" failures begin to emerge. Specifically, a "soft" failure occurs when faulty interface circuitry and/or wiring leads to partial responses that serve to generate an abnormally high data error condition. The appearance is one of a somewhat functional netwoik accompanied with a drop in data throughput.
  • SNMP Simple Netwoik Management Protocol
  • SNMP serves as a tool to help probe and identify problem areas of a netwoik. Statistics are extracted and maintained on a per-port basis. As discussed by Stallings, a network-management system is designed to view the entire netwoik as a unified architecture with addresses and labels assigned to each point and the specific attributes of each element and link known to the system. The active elements of the netwoik provide regular feedback of status information to the network-control center.
  • At least one node in the netwoik is designated as the network-control host, or manager.
  • Each repeater and/or hub in the network normally contains a collection of software devoted to the network- management task; this software is referred to as the SNMP agent.
  • SNMP agents present information to the netwoik-control manager. Specifically, an agent is assigned to carry out a task, and return and report if necessary. Agents are empowered to flow over any or all the netwoik as deemed by the administrator. Management information accessible via SNMP is maintained in a Management Information Base (MB) at each manager and agent node.
  • a MB is a set of resources in the netwoik that are being managed.
  • SNMP is considered to function as a subset to the more generic MIBs.
  • SNMP agents perform several tasks, including: collecting statistics on communications and network-related activities, storing statistics locally, reporting on general repeater health and information regarding the nature of the data flow through a given port, and responding to commands from the network-control manager.
  • Typical commands sent from the network-control manager to the agents include commands to: transmit collected statistics to the network-control manager, change a parameter, provide status information, and generate artificial traffic to perform a test.
  • the network-control manager analyzes information regarding a port for suspect information.
  • Figure 1 illustrates a conventional netwoik having two hubs or repeater modules 50 and 52.
  • the repeater module 50 is connected to a series of nodes 54, and the repeater module 52 is connected to a series of nodes 56 and 58.
  • the node 58 is designated as the network-control manager.
  • the repeater modules 50 and 52 have SNMP network-management system capabilities.
  • the repeater module 50 includes two model DP83950A Repeater Interface Controllers (RIC) 60 and 62 that are manufactured by National Semiconductor Corporation of Santa Clara, California.
  • RIC Repeater Interface Controllers
  • a complete description and specification of the RIC is set forth in National Semiconductor Corporation's publication entitled Local Area Networks Databook. 1993 Edition, pages 3- 3 through 3-73.
  • a complete description of the RIC is also set forth in the co-pending patent application U.S. Serial No. 08/079,210, filed June 18, 1993, entitled "Hub Management Bus Architecture For Repeater Interface Controller", which application is a file wrapper continuation of U.S. Serial No.
  • the RICs 60 and 62 may be used to implement an IEEE 802.3 multiport repeaterunit.
  • Each RIC 60 and 62 fully satisfy the IEEE 802.3 repeater specification including the functions defined by the repeater, segment partition and jabber lockup protection state machines.
  • Each RIC 60 and 62 can connect to thirteen physical transmission medium segments via its netwoik interface ports 1-13.
  • Port 1 is fully attachment unit interface (AUI) compatible and able to connect to an external medium attachment unit (MAU) using the maximum length of AUI cable.
  • Ports 2-13 have integrated 10BASE-T transceivers. These transceiver functions may be bypassed so that the RICs 60 and 62 may be used with external transceivers such as National Semiconductor Corporation's model DP8392 Coaxial Transceiver.
  • each packet includes control information such as the address of the packet source (transmit station) and the address of the packet destination (receive station).
  • transmit station the address of the packet source
  • receive station the address of the packet destination
  • the packet is transmitted out on every other port of both of the RICs 60 and 62.
  • the RICs 60 and 62 are connected together so that they function as a single logical repeater.
  • each RIC 60 and 62 includes an Inter-RIC bus interface 64 which implements a protocol for cascading multiple RICs together to maintain the logical function of a single repeater.
  • the Inter-RIC bus 64 allows a data packet to be transferred from the receiving RIC to other RICs in the system.
  • the Inter- RIC bus 64 includes a set of status lines capable of conveying collision information between RICs to ensure that their main state machines (MSM) operate in the appropriate manner.
  • MSM main state machines
  • the RICs 60 and 62 provide hub management support in the form of information regarding the status of their ports and of the packets they are repeating. This data is available in three forms: counted events, recorded events and status packets. This information is used by the SNMP network-management system to probe and identify problem areas of the network and is available through a hub management interface associated with each RIC 60 and 62.
  • the counters and event recording registers have user- definable masks which enable them to be configured to count and record a variety of events.
  • the hub management interface associated with each RIC 60 and 62 provides a mechanism for combining repeater status information with packet information to form a hub management status packet.
  • a four signal hub management bus 66 for transmitting data and statistics is connected to the hub management interface of each RIC 60 and 62.
  • the management bus 66 is a serial bus consisting of carrier sense, receive clock, receive data, and packet compress.
  • the management bus 66 is designed to connect to one or multiple RICs over a back-plane bus to a National Semiconductor Corporation DP83916/32 SONICTM Netwoik Controller 68.
  • the SONIC 68 interfaces with a CPU 70 and a system RAM 72 via a system bus 74.
  • the system bus 74 is also connected directly to the RICs 60 and 62.
  • the RICs 60 and 62, the SONIC 68, the CPU 70, and the system RAM 72 form a powerful entity for SNMP network-management statistics gathering.
  • the hub management interface associated with each RIC 60 and 62 consists of four pins: (1) MRXC, management receive clock (10 MHz enters the clock output), (2) MCRS, management carrier sense (input/output indicating a valid data stream), (3) MRXD, management receive data (NRZ data outputs synchronous to MRXC), and (4) PCOMPz, packet co ⁇ ress (input to truncate the packet's data field).
  • the first three signals mimic the interface between an Ethernet controller and a phase lock loop decoder (specifically, a DP83916/32 SONICTM Network Controller and a National Semiconductor Corporation DP83910 SNI). These signals are driven by the RIC 60 or 62 which receives the packet.
  • MRXC and MRXD create an NRZ serial data stream compatible with the SONICTM 68.
  • the PCOMPz signal is driven directly by the SONIC 68 or by the logic on the processor board.
  • the actual data stream transferred over MRXD is derived from data transferred over the Inter-RIC bus 64.
  • the data that is transmitted to the SONIC 68 by MRXD includes the received packet with seven bytes of netwoik statistics appended; these statistics include: CRC error status, frame alignment status, out of window collision status, collision start time information, packet length, length of the preceding interrrame gap, jabber protect event status, elasticity buffer error status, phase lock decode error status, short event status, address of the receiving port, address of the receiving RIC, i.e., utilization of packet compression.
  • This seven byte status field is shown in Table I below. TABLE I
  • the packet compress PCOMP feature provided by the hub management bus 66 allows minimal use of system memoiy. Specifically, PCOMP causes suppression (non-transmission on the management bus) of unwanted segments of the received packet. The amount of compression is programmable.
  • the PCOMP input pin is compatible with a packet compress output pin provided by the SONIC 68.
  • the SONIC 68 is capable of detecting 16 Ethernet addresses (found at the start of the Ethernet packet).
  • the SONIC-RIC combination can be used to compress netwoik data based upon the Ethernet address found in the netwoik data stream.
  • the SONIC-RIC combination typically runs in a promiscuous mode, i.e., it accepts data from anywhere in the network. This supports efficient memory usage in both managed hub and managed bridge applications.
  • the packet is transmitted out of all of the other ports and the packet is also transmitted in serial form over the management bus 66.
  • the SONIC 68 acquires the system bus 74 so that the packet can be stored in the system RAM 72.
  • the packet is stored in the system RAM 72 so that the SNMP kernel/agent software, which is also stored in the system RAM 72, can retrieve all or a portion of the data in the seven byte status field appended to the packet.
  • the SNMP kernel/agent software will normally retrieve such information in response to a command from the network-control manager 58.
  • the purpose of the CPU 70 is to process the incoming packets. Specifically, the CPU 70 extracts, separates, or “parses", the SNMP statistics from the seven byte status field and stores the parameters in the proper location in the RAM 72. Proper parameter extraction of SNMP statistics requires the CPU 70 to interactively function on a per-packet basis. The need to process in an interactive relatively “real-time” fashion is often necessary to ensure that under heavy traffic loads and under conditions where "runt" packets are present, all information can be processed and dealt with in a fashion that ensures accuracy under the most stringent of conditions.
  • processing the information on a per-packet basis is a highly repetitive task which often results in inefficient operation due to constant interruption. If new packets are constantly being received, as is commonly the case, the CPU 70 may not be able to process all of the data. Furthermore, this high- bandwidth, real-time processing may prevent the CPU 70 from functioning as a higher level parameter extraction device, or to execute other MIBs. As managed HUB popularity increases, so too will the need for ever increasing CPU overiiead requirements.
  • the present invention provides an apparatus for accumulating management data from a network repeater.
  • the apparatus includes a register file having a set of command registers addressable by an external CPU for receiving commands from the external CPU.
  • a memory management unit that is connectable to a management memory generates addresses and coordinates transfers of data to and from the management memoiy.
  • a management processor separates the management data into individual bits, polls the individual bits to determine which bits indicate a condition which should be recorded, and transfers data to and from the memory management unit in order to update the contents of the management memory for each such condition.
  • the management processor is capable of responding to commands received by the register file from the external CPU by communicating with the memory management unit to retrieve management data from the management memory for delivery to the register file.
  • the present invention provides a network repeater module.
  • the module includes a repeater having a plurality of ports that are each connectable to a netwoik node.
  • the repeater has a management bus for carrying management data.
  • a CPU is included for running network management software.
  • the CPU has a CPU bus.
  • a network controller is connected to the management bus and the CPU bus for coordinating the transfer of the management data from the management bus to the CPU.
  • a repeater information base (RB) is connected to the management bus and the CPU bus for accumulating the management data from the management bus and for providing the accumulated management data to the CPU in response to commands received from the CPU.
  • the present invention also provides a method of accumulating management data generated by a repeater.
  • the management data is separated into individual bits.
  • the individual bits are polled to determine which bits indicate a condition which should be recorded.
  • a management memory address is generated that has an attribute offset that will point to an attribute accumulation register in a management memory for accumulating data corresponding to the condition.
  • the contents of the attribute accumulation register are then read.
  • the contents of the attribute accumulation register are incremented by one and then written back to the attribute accumulation register.
  • Figure 1 is a pictorial diagram illustrating a conventional local area network (LAN).
  • Figure 2 is a block diagram of a repeater module that may be used in the LAN shown in Figure 1.
  • Figure 3 is a block diagram of a repeater module having a repeater information base (RIB) in accordance with the present invention.
  • RRIB repeater information base
  • Figure 4 is a block diagram illustrating the RB shown in Figure 3.
  • Figures 5 and 6 are memory maps illustrating the allocation of memoiy in the SRAM shown in Figure 3.
  • FIGS 7 through 9 are flow charts illustrating the RIB attribute accumulation procedure in accordance with the present invention.
  • Figures 10 and 11 are timing diagrams illustrating the read and write, respectively, operations of the SRAM shown in Figure 4.
  • Figure 12 is a register map illustrating the command register set of the register file shown i Figure 4.
  • Figures 13 through 26 are diagrams illustrating the contents of each of the command registers shown in the register map of Figure 12.
  • Figure 27 and 28 are timing diagrams illustrating the command register read and write, respectively, operations performed by the CPU shown in Figure 3.
  • Figure 29 is a connection diagram illustrating the pin allocations for the RIB shown in Figure 4.
  • Figures 30 and 31 are data sheets which provide a description of each of the pins shown in Figure
  • FIG. 3 illustrates the repeater module 50 having an SNMP repeater information base (RB) 76 in accordance with the present invention.
  • the RB 76 is a dedicated hardware assist chip architecture that processes the status information provided by the RICs' 60 and 62 management bus 66.
  • the RIB 76 can process and store the SNMP network-management statistics independent of netwoik traffic flow with no required CPU 70 intervention and with minimal software overhead. Because the bandwidth of the real-time processing of the CPU 70 is reduced, the CPU 70 is free to function as a higher level parameter extraction device or to execute other management information bases (MBs).
  • the RB 76 information content adheres to guidelines outlined in the BEE 802.3K specifications for a MB functioning within the bounds of SNMP.
  • the RB 76 is a separate integrated circuit chip that is connected to the management bus 66 and the CPU 70 system bus 74. Information present on the management bus 66 is asynchronously sampled by the RB 76. The RB 76 provides its own clock. Accurate interpretation of the management bus 66 information is bounded by control signals supplied by the RICs 60 and 62. The RB 76 serves as a dedicated hardware interface for sampling and parsing the SNMP statistics from the seven byte status field appended to the incoming packet.
  • the RIB 76 collects thirteen simultaneous statistics and stores the parameters in the appropriate location in a dedicated management memory 78, such as a static random access memory (SRAM), as dictated by a RIC port identification code.
  • a dedicated management memory 78 such as a static random access memory (SRAM), as dictated by a RIC port identification code.
  • SRAM static random access memory
  • the management memory 78 is shown in Figure 4 as an SRAM, it should be understood that other types of memories, such as a dynamic RAM, could be used for the management memory 78. All parameter collection is maintained in the SRAM 78.
  • Statistics are represented as a count value from 0 to 2 32 .
  • the SRAM 78 may be located either internal or external to the RIB 76 as deemed most cost effective.
  • Each of the RICs 60 and 62 is capable of supporting up to thirteen ports. Because the repeater module 50 has two RICs 60 and 62 and one RB 76, the RB 76 will maintain up to twenty-six collections or blocks of statistics. Furthermore, the RIB 76 is capable of managing one collision domain or segment at any given time.
  • the network-control manager 58 retrieves network status information from the RB 76 by issuing a command to the SNMP agent software. The command is addressed to the SONIC 68 which passes the command along to the CPU 70.
  • the CPU 70 which runs the SNMP kernel/agent software, communicates to the RB 76 which status information is needed via the system bus 74. Because the RB 76 gives priority to new packet processing, the RB 76 will respond to the CPU 70's request when it finishes processing the current new packet.
  • the RB 76 responds to the CPU 70 's request by retrieving the requested status information from the SRAM 78 and transferring the information to the CPU 70 via the system bus 74.
  • the CPU 70 then builds a data packet having the requested information and sends it through the SONIC 68 and the RICs 60 or 62 back to the network-control manager 58.
  • the basic components of the RIB 76 include a management interface 82, an SNMP processor 84 (or management processor 84), a memory management unit 86, a CPU interface 88, and a register file 90.
  • the management interface 82 is an asynchronous interface which connects to the management bus 66 to receive the four signals MCRS, MRXC, PCOMPz, and MRXD. These four signals are generated by the RICs 60 and 62.
  • the MRXD signal is the management receive data signal. When asserted, this signal provides a serial data stream in NRZ format. The data stream is made up of the data packet and the seven bytes of RIC statistics information.
  • the MRXC signal is the management receive clock. When asserted, this signal provides a clock signal for the MRXD serial data stream. The MRXD signal is changed on the falling edge of this clock.
  • the MCRS signal is the management carrier sense signal. When asserted, this signal provides an activity framing enable for the serial output data stream MRXD.
  • the PCOMP signal is the packet compress signal. This input is used to identify compressed management information.
  • the primary functions of the management interface 82 include receiving the management bus 66 data, extracting the data as specified by management clock MRXC, detecting compressed packets as specified by the signal PCOMPz, and synchronizing the management bus 66 data to the internal clock within the SNMP processor 84 of the RIB 76.
  • the MCRS signal serves as a packet data envelope.
  • the management interface 82 detects a packet start of frame detection (SFD) and then extracts the source address from the data. On the desertion, or FALSE condition, of MCRS, the seven bytes of statistics data is detected.
  • SFD packet start of frame detection
  • Table 1 above illustrates bit-by-bit all of the data that is contained in the seven bytes of statistics information appended to each incoming packet. Not all of this data is passed on to the SNMP processor 84. Instead, the management interface 82 identifies the relevant data and transfers it to the SNMP processor over a data line 92.
  • the data line 92 may be either a serial or parallel line.
  • the SNMP statistics, or management data, that is extracted from the management bus 66 and transferred to the SNMP processor 84 includes readable frames, readable octets, frame check sequence, alignment error, frame too long, short events, runts, collisions, late events, very long events, and date rate mismatch.
  • a description of the management data that is passed on to the SNMP processor 84 follows. (1) Addressing information in the form of the ethernet address of the source of each packet; this data indicates to the SNMP netwoik-management system the last source address or a source address change.
  • the collision bit COL which is contained in bit D5 of PSR(l); this bit indicates to the SNMP network management system whether a receive or transmit collision occurred during packet repetition.
  • the jabber event bit JAB which is contained in bit D2 of PSR(2); this bit indicates to the SNMP network management system that the receive packet was so long that the repeater was forced to go into a jabber protect condition, i.e., a very long event.
  • the elasticity buffer error bit ELBER which is contained in bit D3 of PSR(2); this bit indicates to the SNMP netwoik management system that during the packet an elasticity buffer under/overflow occurred indicating a data rate mismatch.
  • the short event bit SE which is contained in bit D7 of PSR(2); this bit indicates to the SNMP netwoik management system that the receive activity was so small it met the criteria to be classified as a short event.
  • the SFD field or, if no SFD field is repeated, the length of the packet counted in bytes, i.e., the readable frames and the readable octets.
  • the SNMP processor 84 sends control information to the management interface 82 via a control line 94. Control information starts and stops the flow of data to the SNMP processor 84 along the data line 92. The control information may be used to access specific data information and, as necessary, reset the management interface 82 registers or bits. Furthermore, the control information can detect the start of data and ensure adequate synchronization of the SNMP processor 84 to the management interface 82.
  • the SNMP processor 84, or management processor 84 serves as the core intelligence of the RB
  • the purpose of the SNMP processor 84 is to accumulate the most recent management data that is received by the management interface 82 and then update the management data stored in the SRAM 78 as necessary. Specifically, the SNMP processor 84 requests the management information from the management interface 82 via the control lines 94. As the SNMP processor 84 receives the management data from the management interface 82 over the data line 92, the SNMP processor 84 parses or separates the relevant management data bits, i.e., the COL, FAE, CRC, JAB, ELBER, OWC, SE, and RBY(15:0) bits, into specific locations within the SNMP processor 84. The SNMP processor 84 then scans the data bits for "TRUE" conditions.
  • TRUE condition is intended herein to mean that the particular bit indicates, whether by a logical "1” or "0", that the condition to which it corresponds has occurred.
  • the SNMP processor 84 communicates with the memory management unit 86 in order to update the corresponding memory location(s) in the SRAM 78.
  • the SNMP processor 84 maintains direct control over addressing information.
  • the RIC identification address A(5:0) and the RIC port identification address PA(3:0) are passed by the SNMP processor 84 on to the memory management unit 86.
  • the SNMP processor 84 On detection of a TRUE management data bit condition, the SNMP processor 84 will update the SRAM 78 memory accumulation location via the RIC identification address A(5:0) and the RIC port identification address PA(3:0).
  • the memory management unit 86 is responsible for translating address information provided by the SNMP processor 84 and the register file 90 into an SRAM 78 address SRA(13 :0). It also functions as an address and data multiplexer for properly funneling data to and from the SRAM 78 under the command of the SNMP processor 84.
  • the particular SRAM 78 that is shown in Figure 4 is external to the RIB 76.
  • the SRAM 78 has an eight bit data bus SRD(7:0) and a fourteen bit address bus SRA(13 :0). It should be well understood, however, that the SRAM 78 may be internal and part of the RJB 76 die and that it may have a variety of size data and address lines.
  • the concept of utilizing external SRAM 78 is to provide an economical solution to an otherwise expensive cost addition to ASIC designs. Whether the SRAM 78 is internal or external, however, the concept of information addressing and transfer of data remains basically the same.
  • Figures 5 and 6 illustrate memory maps for the SRAM 78.
  • Figure 5 shows that there is a portion of memory allocated to each port of each of the RICs 60 and 62.
  • the address 0080 hex corresponds to the first byte memory location for port 2 of the first RIC 60
  • the address 0440 hex corresponds to the first byte memory location for port 1 of the second RIC 62.
  • Figure 6 shows the memory map illustrating the allocation of memory for each of the ports.
  • the portion of memory allocated to each port is divided into several accumulation registers which each contain a different attribute of the management data.
  • the six least significant bits of the SRAM 78 address SRA(5:0) point to the first byte of each attribute and are therefore referred to herein as the "attribute offset".
  • all of the collision statistics data generated by the COL bit for port 2 of the first RIC 60 are stored in the memory accumulation register which begins at address 009C hex, which is calculated as follows:
  • Each memory accumulation register is four bytes, or thirty-two bits, wide. Because the data bus SRD(7:0) of the external SRAM 78 is only a byte wide, each register has four addresses corresponding to the four bytes. In other words, the address of the first byte of each attribute register is offset by four memory byte locations from the address of the first byte of the next attribute register. As will be discussed below, because the total length of each attribute register is thirty-two bits, but only eight bits can be updated at a time, the least significant byte must be updated and then each successive byte checked for carry bits. However, if an internal SRAM 78 were used, the data bus could be thirty-two bits wide so that there would be no need to check for carry bits.
  • the nature of the RB 76 SNMP parameter collection involves the following. First, the RIB 76 identifies and parses the incoming management information as provided by the management bus 66. Second, the receiving port is identified and the port address determined. Third, the target block statistics as dictated by the management bus status bits are updated.
  • the RIB 76 management data accumulation procedure begins with the management interface 82 asynchronously receiving the next data packet, as described above.
  • the management interface 82 passes the management data consisting of the bits COL, FAE, CRC, JAB, ELBER, OWC, and SE to the SNMP processor 84.
  • the RIC address A(5:0) and the RIC Port Address PA(3:0) are passed directly to the memory management unit 86.
  • the SNMP processor 84 parses the management data into specified locations.
  • the SNMP processor 84 begins a polling, or scanning, procedure in order to determine which, if any, of the management data bits FAE, CRC, JAB, ELBER, OWC, SE, RBY and Frames Too Long indicate a TRUE condition.
  • the bits are looked at by the SNMP processor 84 one by one and need not be looked at in any specific order.
  • the polling procedure begins by the SNMP processor 84 setting a bit pointer counter equal to zero.
  • the purpose of the bit pointer counter is to point to the current management data bit that is being polled. It is incremented by one after each bit is polled and the SRAM 78 memory contents updated, if necessary.
  • an if-then loop in the procedure determines whether the bit pointer counter is less than or equal to six.
  • the number six is chosen because the polling procedure will be polling seven management data bits, i.e., the COL, FAE, CRC, JAB, ELBER, OWC, and SE bits.
  • the bit pointer counter will have been incremented to seven and the management data accumulation procedure will start over with the management interface 82 asynchronously receiving the next data packet.
  • the SNMP processor 84 polls the management data bit to which the bit pointer counter is currently pointing. If the management data bit does not indicate a TRUE condition, then the SRAM 78 memoiy contents do not need to be updated. The bit pointer counter is then incremented by one and is again tested to determine if it is less than or equal to six.
  • the procedure shown in Figure 8 is then executed. As shown in Figure 8, the SNMP processor 84 next determines whether the overflow status bit for the specific SRAM 78 memory location indicates a TRUE condition. If a TRUE condition is indicated, then the thirty-two bit memory location is full; the procedure jumps out of the loop, increments the bit pointer counter by one, and begins to poll the next management data bit. If, however, a TRUE condition is not indicated, the SNMP processor 84 begins a read-modify-write procedure. The purpose of the read-modify-write procedure is to update the attribute memory accumulation register in the SRAM 78 in order to reflect that the current management data bit indicates a TRUE condition.
  • the process of individual parameter update operates on the principle of counter increment, i.e., incrementing the accumulation register.
  • Each parameter is represented as a count value of 0-2 32 .
  • Counter update is described as the process of pointing to the least significant byte of the attribute accumulation register and performing a read-modify-write operation. Each operation requires the byte operation to be incremented by one. This procedure is recursively executed for a possible maximum of three additional operations, or until the exhaustion of a carry bit. In situations where a boundary, or overflow condition is detected, the counter may remain set at the bounded state until the CPU 70 intervenes. In accordance with this procedure, the SNMP processor 84 passes a bit TRUE condition to the memory management unit 86.
  • the memory management unit 86 generates an SRAM 78 address having the proper attribute offset.
  • the memory management unit 86 then reads the SRAM 78 attribute accumulation register and passes the data to the SNMP processor 84.
  • the SNMP processor 84 increments the memory contents by one and then updates the carry bit if the register overflows. The incremented contents are then passed back to the memory management unit 86.
  • the memory management unit 86 writes the memory contents back to the SRAM 78 attribute accumulation register.
  • the width of the data bus SRD will probably be equal to the total bit length of each of the attribute accumulation registers.
  • the entire contents of the attribute accumulation registers i.e., all thirty-two bits, can be read and written to at one time. Therefore, the only time that there will be a carry bit is when the register is full.
  • the dotted lines in Figure 8 indicate that the carry bit will be checked for a TRUE condition, and if there is a carry bit, then the register is full and the SNMP processor 84 will set the over-flow status flag (bit) to indicate a TRUE condition. Because no other carry bits need to be taken into account, the read-modify- write procedure ends after the memory contents have been written back to the SRAM 78. The bit pointer counter is then incremented by one as indicated by the dotted line in Figure 8.
  • the SRAM 78 shown in Figure 4 is external to the RB 76 and has only an eight bit data bus SRD(7:0). Because the total length of each of the attribute accumulation registers is thirty-two bits, the register must be read and written to four times, i.e., one byte at a time. Therefore, carry bits from each byte must be taken into account.
  • a procedure for taking carry bits into account begins with the SNMP processor 84 setting an attribute offset counter equal to zero. The purpose of the attribute offset counter is to keep track of which of the four bytes of the accumulation register is currently being checked for cany bits. The procedure then determines if the carry bit indicates a TRUE condition.
  • the memory management unit 86 increments the SRAM 78 address by one so that the address points to the next significant byte.
  • a read-modify-write routine and carry bit update similar to above is performed in order to increment the byte by one.
  • the attribute offset counter is then incremented by one and the new carry bit is checked for a TRUE condition. The procedure continues until the attribute offset counter is equal to three, i.e., the fourth byte has been incremented by one.
  • FIG. 10 illustrates a timing diagram for the SRAM 78 read operation. Valid data is available on the data bus SRD(7:0) within an access time Tl after a valid address has been received by the SRAM 78 over the address bus SRA(13:0).
  • FIG 11 illustrates a timing diagram for the SRAM 78 write operation-
  • the memory management unit 78 asserts the write data strobe SRWRz to begin writing data over the data bus SRD(7:0).
  • the memory management unit 86 is responsible for generating the correct timing parameters for the SRAM 78.
  • the timing parameters for the SRAM 78 are specified by the CPU 70 in the SRAM timing specification section which is located in bits 4 and 5 of configuration register 2 (discussed below). Variations on the timing interface occur according to information programmed in these two bits by the CPU 70.
  • the SRAM 78 addressing requirements are specified in bit 3 of configuration register 2 for support of one or two external RICs.
  • the CPU interface 88 is used to connect the RIB 76 to the system bus 74.
  • the system bus 74 which connects the CPU 70, the RAM 72, and the SONIC 68, contains address and data lines, as well as lines for the control signals INTz, CSz, RDz, WRz, ALE, and CLK.
  • the network-control manager 58 issues a command to the SNMP agent software, the CPU 70 communicates with the RIB 76 via the control lines and the address and data lines in the system bus 74.
  • the SNMP processor 84 retrieves the requested status information from the SRAM 78 and transfers the information to the CPU 70 via the system bus 74.
  • the purpose of the CPU interface 88 is to ensure the proper transfer of asynchronous data, address and control information to the register file 90. It is important to note that incoming CPU 70 requests are processed on an asynchronous basis with respect to the SNMP processor 84.
  • the CPU interface 88 resynchronizes all activity and transfers data at the appropriate time.
  • the pmpose of the register file 90 is to serve as a port to issue the CPU 70 commands, write, and retrieve data, and basically maintain data register cohesion between the external system, i.e., the CPU 70, and the internal SNMP processor 84 and the memory management unit 86.
  • the register file 90 contains a command register set that is addressable by the CPU 70.
  • Figure 12 shows a register map of the register file 90's command register set.
  • the CPU 70 commands the RB 76 via the command register set.
  • the SNMP Processor 84 coordinates and synchronizes all internal processes as a function of activity directly generated by the SNMP processor 84 and activity requested by the CPU 70 through the register file 90.
  • the functions initiated directly by the SNMP processor 84 maintain higher priority over those generated by the register file 90.
  • the CPU 70 issues a command to the command register set in the register file 90.
  • the SNMP processor 84 synchronizes the request between incoming packets, extracts data from the SRAM 78, and places the results into a temporary data buffer that can hold up to six bytes.
  • This temporary data buffer is shown in Figure 12 as the six Read Data Byte registers 1- 6; the number of Read Data Byte registers that are used is programmable by the CPU 70 via the Configuration register 1.
  • the SRAM 78 attribute accumulation register for that port is then reset to zero.
  • the CPU 70 extracts the data from the data buffers, i.e., Read Data Byte registers 1-6, and begins the process of tailoring the data into a format that the SNMP agent can interpret.
  • FIG 13 illustrates the Configuration register 1 of the command register set.
  • the Configuration register 1 is located at address 00 hex with respect to the CPU 70.
  • the CPU 70 commands the RB 76 to start processing management statistics by setting bit 7 of this register.
  • the SNMP data information present in the command registers will be processed. This applies to Read Data Byte n and Write Data Byte operations (discussed below).
  • the SNMP processor 84 will pass SRAM address information, as contained in the Access 1 and 2 registers, to the memory management unit 86.
  • the CPU 70 sets bit 5 of the Configuration register 1 in order to initiate an SRAM 78 write.
  • the Access registers 1 and 2 pass address information to the memoiy management unit 86 and the contents of the Write Data Byte register are written to the SRAM 78.
  • the RIB 76 resets bit 5 to a FALSE condition.
  • the CPU 70 sets bit 4 of the Configuration register 1 in order to initiate an SRAM 78 read. Address information is placed in Access registers 1 and 2 and is passed to the memory management unit 86. The data that is read from the SRAM 78 is placed in the data buffers, i.e., Read Data Byte registers 1-6, where it is passed back to the CPU 70. The number of Read Data Byte registers that receive data is programmed by the CPU via the Configuration register 1. Upon completion of the read, bit 4 is reset to FALSE.
  • the CPU 70 sets bit 3 of the Configuration register 1 in order to initiate an SRAM 78 fill.
  • the SNMP processor 84 will fill the SRAM 78 with the data pattern contained in the Write Data Byte register.
  • the SNMP processor resets bit 3.
  • the CPU 70 uses bits (2:0) of the Configuration register 1 in order to set the number of bytes that are to be accessed from the SRAM 78 and buffered into the Read Data Byte registers. Because there are six Read Data Byte registers, bits (2:0) cannot exceed six. Therefore, the SNMP processor 84 fills the Read Data Byte registers until the value of bits (2:0) is reached.
  • Figure 14 illustrates the Configuration register 2 of the command register set.
  • the Configuration register 2 is located at address 01 hex with respect to the CPU 70.
  • the CPU 70 sets bit 7 of the Configuration register when the RICs 60 and 62 are in security mode (discussed below).
  • the SNMP processor 84 must know that the bit fields specified by management interface 82 change definition.
  • the CPU 70 sets bit 6 of the Configuration register 2 in order to instruct the SNMP processor 84 clear the SRAM 78 memory contents after an SRAM 78 read operation. If bit 6 is not set, the SRAM 78 memory contents will be maintained after an SRAM 78 read.
  • bits (5:4) of the Configuration register 2 specify the SRAM 78 access time T A .
  • the bits are set to 00 for 0ns ⁇ T A ⁇ 20ns, 01 for 25ns ⁇ T A ⁇ 35 ns, and 10 for 35ns ⁇ T A ⁇ 55ns.
  • the SNMP processor 84 is not affected by these bits. It should be noted that if the SRAM 78 is internal to the RIB 76, these bits are not utilized.
  • Figure 15 illustrates the Interrupt Mask register which is addressable by the CPU 70 at address 03 hex. These bits serve as a mask for interrupts constantly being generated by the SNMP processor 84.
  • Figure 16 illustrates the Interrupt Status register which is addressable by the CPU 70 at address 04 hex. These bits are constantly being generated by the SNMP processor 84 to reflect the state of the SNMP processor 84 and indicate the interrupts status.
  • Figure 17 illustrates one of the Read Data Byte transfer registers which are addressable by the CPU 70 at address 10 hex through 15 hex. These registers serve as temporary data buffers, i.e., first-in-first- out register (FIFO) like, for the CPU 70 access.
  • FIFO first-in-first- out register
  • Figures 18 and 19 illustrate the Access registers 1 and 2 which are addressable by the CPU 70 at addresses 20 hex and 21 hex, respectively.
  • the Access registers 1 and 2 are used to pass address information to the memory management unit 86 and basically serve as an SRAM 78 address pointer.
  • the Access register 1 specifies the attribute offset
  • the access register 2 specifies which RIC 60 or 62 and which port.
  • Figure 20 illustrates the port/attribute SRAM 78 pointer that is generated by the memory management unit 86 after receiving the Access registers 1 and 2. The CPU 70 will not see the port/attribute SRAM 78 pointer.
  • Figure 21 illustrates the Write Data Byte register which is addressable by the CPU 70 at address 22 hex. The CPU 70 uses this register to write data to the SRAM 78.
  • Figure 22 illustrates the RIC ID registers 1 and 2 which are addressable by the CPU 70 at addresses 30 hex and 31 hex, respectively. The contents of these registers are used to match to the programmed unique identification of a specific RIC.
  • FIGS 23 and 24 illustrate the Overflow Status registers 1 and 2 which are addressable by the CPU 70 at addresses 40 hex and 41 hex, respectively.
  • the bits of the Overflow Status registers 1 and 2 indicate which attribute accumulation registers are full.
  • FIGS 25 and 26 illustrate the Port Attributes Status registers 1 and 2 which are also addressable by the CPU 70. These registers are constantly being updated and reflect the current state of the SNMP processor 84. Updating the Port Attributes Status registers is part of the so-called "housekeeping chores" of the SNMP processor 84. One purpose of such housekeeping chores is to keep the CPU 70 updated as to the status of the RIB 76.
  • the system bus 74 carries the control signals INTz, CSz, RDz, WRz, ALE, and CLK.
  • the RB 76 generates the interrupt signal INTz when an interrupt is pending from one of the sources indicated by the Interrupt Status register. However, interrupts that are masked in the Interrupt Mask register will not activate INTz.
  • Figure 27 illustrates a timing diagram for a CPU 70 command register read. The CPU 70 asserts the chip select signal CSz low in order to access the RB 76's command registers in the register file 90. The registers are selected by placing an address on the address/data lines in the system bus 74.
  • the CPU 70 asserts the address latch enable ALE to indicate that a valid address is on the address/data lines during a register operation.
  • the CPU 70 asserts the read data strobe RDz low to indicate when data may be driven onto the address/data lines during the register read operation-
  • Figure 28 illustrates a timing diagram for a CPU 70 command register write.
  • the write data strobe WRz is asserted by the CPU 70 to indicate that valid data is on the address/data bus during a register write operation-
  • Figure 29 illustrates a connection diagram for one embodiment of the RB 76.
  • Figure 30 and 31 provide descriptions of the pins for the RB 76 shown in Figure 29.
  • the RICs 60 and 62 are capable of operating in a secure mode.
  • the RB 76 is capable of operating with the RICs 60 and 62 when they are operating in secure mode.
  • the information content of the management bus 66 changes.
  • the RIC security mode bit in Configuration register 2 (Olh) is set.
  • the packet source address stays the same and SNMP processing can proceed as under non-secure conditions.
  • the seven management data bytes are changed.
  • the original register PSR(5) is remapped as follows.
  • Bit D3 becomes the RUNT bit.
  • RUNT is defined as a packet length that is less than 64 bytes or greater than or equal to short event length This provides SNMP RUNT information update.
  • Bit D4 becomes source address mismatch (SAM). This bit provides no SNMP value.
  • the RB 76 serves as a dedicated hardware collection device, the ability to process data virtually real-time, independent of the amount of traffic flow on the netwoik lends itself as a powerful asset in any CPU based SNMP platform. With cost targets of the RB 76 below comparable CPU cost per function, the remaining CPU 70 bandwidth can be used to process more complex MBs. For cost sensitive systems, the combination of the RB 76 with a lower cost CPU 70 can also serve as an attractive alternative in lowering overall system cost.

Landscapes

  • Engineering & Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A repeater information base (RIB) (76) for accumulating management data from a network repeater and for providing at least a portion of the accumulated management data to a CPU in response to commands from the CPU. A preferred embodiment includes a management interface (82) and a CPU interface (88). A register file (90) responsive to the CPU interface has a set of command registers addressable by the CPU. A management memory (78) stores the management data. A memory management unit (86) generates addresses for the management memory and transfers management data to and from the management memory. A management processor (84) receives the management data from the management interface (82), separates the management data into individual bits, polls the individual bits to determine which bits indicate a condition which should be recorded, and transfers data to and from the memory management unit (86) for updating the contents of the management memory for each such condition. The management processor (84) is capable of responding to commands received from the register file (90) by communicating with the memory management unit (86) to retrieve management data from the management memory (78) for delivery to the register file (90). A method of accumulating management data generated by a repeater includes the steps of separating the management data into individual bits, polling the individual bits, generating a management memory address, reading, incrementing, and then writing back the contents of the attribute accumulation register.

Description

Repeater Information base for SNMP network management stati stics accumulation
BACKGROUND OF THE INVENTION L. Field of the Invention
The present invention relates to network management systems, repeaters, and hubs and, more particularly, to a repeater information base (RIB) which can be used in a repeater or hub for assisting in the accumulation of Simple Netwoik Management Protocol (SNMP) netwoik management statistics and data.
2__ Description of the Related Art
A local area network, or LAN, is a communications system that provides interconnection among a number of independent computing stations within a small area, such as a single building or a group of adjacent buildings. An excellent overview of local area network concepts and technology is set forth in William Stallings' textbook Local Networks. Third Edition, MacMillan Publishing Company, 1990. Networks are typically constructed from routers, bridges, repeaters, and hubs. End users that hook to the network, e.g., a desktop computer, provide a network node. Routers and bridges, intelligently or blindly, direct network traffic. Repeaters and hubs are most often employed to concentrate, amplify, and restructure incoming signals. The primary difference between a repeater and a hub is that a repeater uses only a single protocol, whereas a hub can utilize several different protocols at the same time. A protocol is a set of semantic and syntactic rules that determines the behavior of functional units in achieving communication. Repeaters and hubs are physical units and typically include several ports, sometimes numbering in the hundreds. Ports provide a physical way to build a network; specifically, ports are most often used to connect to nodes, but a port can be used to connect one network to another.
As the netwoik size grows, so too does the complexity and the probability of failure. Before the introduction of automated network-management tools (discussed below), a netwoik administrator addressed failures by strategically isolating and testing specific points in the netwoik. This time consuming task required the administrator to have a thorough knowledge of physical locations and specialized skills in interpreting the results. Complexity often surmounts under conditions where "soft" failures begin to emerge. Specifically, a "soft" failure occurs when faulty interface circuitry and/or wiring leads to partial responses that serve to generate an abnormally high data error condition. The appearance is one of a somewhat functional netwoik accompanied with a drop in data throughput.
Various automated network-management systems and tools have been developed in order to effectively manage large networks. In order to deal with the multivendor environment of the typical network, network-management systems and tools must be based on standardized network-management protocols and applications. One such standardized network-management protocol is the Simple Netwoik Management Protocol (SNMP). SNMP was developed to provide a basic, no frills service for TCP/IP- based (transmission-control protocol/internet protocol) environments. An excellent overview of network- management systems and SNMP is set forth in William Stallings' textbook SNMP. SNMPv2. and CMTP: The Practical Guide to Netwoik-Manage ent Standards. Addison-Wesley Publishing Company, 1993, which provides part of the basis for the following background discussion.
SNMP serves as a tool to help probe and identify problem areas of a netwoik. Statistics are extracted and maintained on a per-port basis. As discussed by Stallings, a network-management system is designed to view the entire netwoik as a unified architecture with addresses and labels assigned to each point and the specific attributes of each element and link known to the system. The active elements of the netwoik provide regular feedback of status information to the network-control center.
At least one node in the netwoik is designated as the network-control host, or manager. Each repeater and/or hub in the network normally contains a collection of software devoted to the network- management task; this software is referred to as the SNMP agent. SNMP agents present information to the netwoik-control manager. Specifically, an agent is assigned to carry out a task, and return and report if necessary. Agents are empowered to flow over any or all the netwoik as deemed by the administrator. Management information accessible via SNMP is maintained in a Management Information Base (MB) at each manager and agent node. A MB is a set of resources in the netwoik that are being managed. SNMP is considered to function as a subset to the more generic MIBs.
SNMP agents perform several tasks, including: collecting statistics on communications and network-related activities, storing statistics locally, reporting on general repeater health and information regarding the nature of the data flow through a given port, and responding to commands from the network-control manager. Typical commands sent from the network-control manager to the agents include commands to: transmit collected statistics to the network-control manager, change a parameter, provide status information, and generate artificial traffic to perform a test. The network-control manager analyzes information regarding a port for suspect information. Thus, SNMP gives the system administrator the ability to identify network problems at the detail of the target port. Figure 1 illustrates a conventional netwoik having two hubs or repeater modules 50 and 52. The repeater module 50 is connected to a series of nodes 54, and the repeater module 52 is connected to a series of nodes 56 and 58. The node 58 is designated as the network-control manager. The repeater modules 50 and 52 have SNMP network-management system capabilities.
Referring to Figure 2, the repeater module 50 includes two model DP83950A Repeater Interface Controllers (RIC) 60 and 62 that are manufactured by National Semiconductor Corporation of Santa Clara, California. A complete description and specification of the RIC is set forth in National Semiconductor Corporation's publication entitled Local Area Networks Databook. 1993 Edition, pages 3- 3 through 3-73. A complete description of the RIC is also set forth in the co-pending patent application U.S. Serial No. 08/079,210, filed June 18, 1993, entitled "Hub Management Bus Architecture For Repeater Interface Controller", which application is a file wrapper continuation of U.S. Serial No.
07/643,208, filed January 18, 1991, entitled "Hub Management Bus Architecture For Repeater Interface Controller", now abandoned. Both applications are assigned to National Semiconductor Corporation of Santa Clara, California. The first application, U.S. Serial No. 08/079,210, is hereby incorporated by reference to provide background information regarding the present invention. The RICs 60 and 62 may be used to implement an IEEE 802.3 multiport repeaterunit. The RICs
60 and 62 fully satisfy the IEEE 802.3 repeater specification including the functions defined by the repeater, segment partition and jabber lockup protection state machines. Each RIC 60 and 62 can connect to thirteen physical transmission medium segments via its netwoik interface ports 1-13. Port 1 is fully attachment unit interface (AUI) compatible and able to connect to an external medium attachment unit (MAU) using the maximum length of AUI cable. Ports 2-13 have integrated 10BASE-T transceivers. These transceiver functions may be bypassed so that the RICs 60 and 62 may be used with external transceivers such as National Semiconductor Corporation's model DP8392 Coaxial Transceiver.
Data is transmitted in a netwoik in units that are usually referred to as "frames" or "packets". In addition to the data to be transmitted, each packet includes control information such as the address of the packet source (transmit station) and the address of the packet destination (receive station). When a port of one of the RICs 60 and 62 receives a packet, the packet is transmitted out on every other port of both of the RICs 60 and 62. Although the packet is transmitted to all of the nodes in the network, only the receive station will receive the packet. The RICs 60 and 62 are connected together so that they function as a single logical repeater.
Specifically, each RIC 60 and 62 includes an Inter-RIC bus interface 64 which implements a protocol for cascading multiple RICs together to maintain the logical function of a single repeater. The Inter-RIC bus 64 allows a data packet to be transferred from the receiving RIC to other RICs in the system. The Inter- RIC bus 64 includes a set of status lines capable of conveying collision information between RICs to ensure that their main state machines (MSM) operate in the appropriate manner.
The RICs 60 and 62 provide hub management support in the form of information regarding the status of their ports and of the packets they are repeating. This data is available in three forms: counted events, recorded events and status packets. This information is used by the SNMP network-management system to probe and identify problem areas of the network and is available through a hub management interface associated with each RIC 60 and 62. The counters and event recording registers have user- definable masks which enable them to be configured to count and record a variety of events.
The hub management interface associated with each RIC 60 and 62 provides a mechanism for combining repeater status information with packet information to form a hub management status packet. A four signal hub management bus 66 for transmitting data and statistics is connected to the hub management interface of each RIC 60 and 62. The management bus 66 is a serial bus consisting of carrier sense, receive clock, receive data, and packet compress. The management bus 66 is designed to connect to one or multiple RICs over a back-plane bus to a National Semiconductor Corporation DP83916/32 SONIC™ Netwoik Controller 68. In turn, the SONIC 68 interfaces with a CPU 70 and a system RAM 72 via a system bus 74. The system bus 74 is also connected directly to the RICs 60 and 62. The RICs 60 and 62, the SONIC 68, the CPU 70, and the system RAM 72 form a powerful entity for SNMP network-management statistics gathering.
The hub management interface associated with each RIC 60 and 62 consists of four pins: (1) MRXC, management receive clock (10 MHz enters the clock output), (2) MCRS, management carrier sense (input/output indicating a valid data stream), (3) MRXD, management receive data (NRZ data outputs synchronous to MRXC), and (4) PCOMPz, packet coπφress (input to truncate the packet's data field).
The first three signals mimic the interface between an Ethernet controller and a phase lock loop decoder (specifically, a DP83916/32 SONIC™ Network Controller and a National Semiconductor Corporation DP83910 SNI). These signals are driven by the RIC 60 or 62 which receives the packet. MRXC and MRXD create an NRZ serial data stream compatible with the SONIC™ 68. The PCOMPz signal is driven directly by the SONIC 68 or by the logic on the processor board. The actual data stream transferred over MRXD is derived from data transferred over the Inter-RIC bus 64.
The data that is transmitted to the SONIC 68 by MRXD includes the received packet with seven bytes of netwoik statistics appended; these statistics include: CRC error status, frame alignment status, out of window collision status, collision start time information, packet length, length of the preceding interrrame gap, jabber protect event status, elasticity buffer error status, phase lock decode error status, short event status, address of the receiving port, address of the receiving RIC, i.e., utilization of packet compression. This seven byte status field is shown in Table I below. TABLE I
Packet Status D7 D6 D5 D4 D3 D2 Dl DO Register PSR
PSR(O) A5 A4 A3 A2 Al A0 PCOMPD resv
PSR(l) CRCER FAE COL CLN PA3 PA2 PA1 PAO
PSR(2) SE owe NSFD PLER ELBER JAB CBT9 CBT8
PSR(3) Collision CBT7 CB 6 CBT5 CBT4 CBT3 CBT2 CBT1 CBTO Bit Timer
PSR(4) RBY7 RBY6 RBY5 RBY4 RBY3 RBY2 RBY1 RBYO
Lower Repeat
Byte Count
PSR(5) RBY15 RBY14 RBY13 RBY12 RBY11 RBY10 RBY9 RBY8
Upper Repeat
Byte Count
PSR(6) IBT7 IBT6 IBT5 IBT4 IBT3 IBT2 IBT1 IBTO Inter Frame Gap Bit Timer
Consistent with the BEE 802.3 protocol, the least significant bit of each byte is transmitted first. The packet compress PCOMP feature provided by the hub management bus 66 allows minimal use of system memoiy. Specifically, PCOMP causes suppression (non-transmission on the management bus) of unwanted segments of the received packet. The amount of compression is programmable. The PCOMP input pin is compatible with a packet compress output pin provided by the SONIC 68. For PCOMPz operation, the SONIC 68 is capable of detecting 16 Ethernet addresses (found at the start of the Ethernet packet). Thus, the SONIC-RIC combination can be used to compress netwoik data based upon the Ethernet address found in the netwoik data stream. For normal operation, the SONIC-RIC combination typically runs in a promiscuous mode, i.e., it accepts data from anywhere in the network. This supports efficient memory usage in both managed hub and managed bridge applications.
During operation, each time a packet is received by one of the ports of either of the RICs 60 and 62, the packet is transmitted out of all of the other ports and the packet is also transmitted in serial form over the management bus 66. When a packet is transmitted over the management bus 66, the SONIC 68 acquires the system bus 74 so that the packet can be stored in the system RAM 72. The packet is stored in the system RAM 72 so that the SNMP kernel/agent software, which is also stored in the system RAM 72, can retrieve all or a portion of the data in the seven byte status field appended to the packet. The SNMP kernel/agent software will normally retrieve such information in response to a command from the network-control manager 58.
The purpose of the CPU 70 is to process the incoming packets. Specifically, the CPU 70 extracts, separates, or "parses", the SNMP statistics from the seven byte status field and stores the parameters in the proper location in the RAM 72. Proper parameter extraction of SNMP statistics requires the CPU 70 to interactively function on a per-packet basis. The need to process in an interactive relatively "real-time" fashion is often necessary to ensure that under heavy traffic loads and under conditions where "runt" packets are present, all information can be processed and dealt with in a fashion that ensures accuracy under the most stringent of conditions.
However, processing the information on a per-packet basis is a highly repetitive task which often results in inefficient operation due to constant interruption. If new packets are constantly being received, as is commonly the case, the CPU 70 may not be able to process all of the data. Furthermore, this high- bandwidth, real-time processing may prevent the CPU 70 from functioning as a higher level parameter extraction device, or to execute other MIBs. As managed HUB popularity increases, so too will the need for ever increasing CPU overiiead requirements.
Thus, there is a need for an apparatus which can assist in the processing and storing of SNMP network-management statistics in order to leave the CPU 70 free to perform other functions.
SUMMARY OF THE INVENTION The present invention provides an apparatus for accumulating management data from a network repeater. The apparatus includes a register file having a set of command registers addressable by an external CPU for receiving commands from the external CPU. A memory management unit that is connectable to a management memory generates addresses and coordinates transfers of data to and from the management memoiy. A management processor separates the management data into individual bits, polls the individual bits to determine which bits indicate a condition which should be recorded, and transfers data to and from the memory management unit in order to update the contents of the management memory for each such condition. The management processor is capable of responding to commands received by the register file from the external CPU by communicating with the memory management unit to retrieve management data from the management memory for delivery to the register file.
In another embodiment, the present invention provides a network repeater module. The module includes a repeater having a plurality of ports that are each connectable to a netwoik node. The repeater has a management bus for carrying management data. A CPU is included for running network management software. The CPU has a CPU bus. A network controller is connected to the management bus and the CPU bus for coordinating the transfer of the management data from the management bus to the CPU. A repeater information base (RB) is connected to the management bus and the CPU bus for accumulating the management data from the management bus and for providing the accumulated management data to the CPU in response to commands received from the CPU.
The present invention also provides a method of accumulating management data generated by a repeater. In accordance with this method, the management data is separated into individual bits. The individual bits are polled to determine which bits indicate a condition which should be recorded. Upon the occurrence of a condition which should be recorded, a management memory address is generated that has an attribute offset that will point to an attribute accumulation register in a management memory for accumulating data corresponding to the condition. The contents of the attribute accumulation register are then read. The contents of the attribute accumulation register are incremented by one and then written back to the attribute accumulation register.
A better understanding of the features and advantages of the present invention will be obtained by reference to the following detailed description of the invention and accompanying drawings which set forth an illustrative embodiment in which the principles of the invention are utilized. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a pictorial diagram illustrating a conventional local area network (LAN). Figure 2 is a block diagram of a repeater module that may be used in the LAN shown in Figure 1. Figure 3 is a block diagram of a repeater module having a repeater information base (RIB) in accordance with the present invention.
Figure 4 is a block diagram illustrating the RB shown in Figure 3.
Figures 5 and 6 are memory maps illustrating the allocation of memoiy in the SRAM shown in Figure 3.
Figures 7 through 9 are flow charts illustrating the RIB attribute accumulation procedure in accordance with the present invention.
Figures 10 and 11 are timing diagrams illustrating the read and write, respectively, operations of the SRAM shown in Figure 4.
Figure 12 is a register map illustrating the command register set of the register file shown i Figure 4. Figures 13 through 26 are diagrams illustrating the contents of each of the command registers shown in the register map of Figure 12.
Figure 27 and 28 are timing diagrams illustrating the command register read and write, respectively, operations performed by the CPU shown in Figure 3.
Figure 29 is a connection diagram illustrating the pin allocations for the RIB shown in Figure 4. Figures 30 and 31 are data sheets which provide a description of each of the pins shown in Figure
29.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT Figure 3 illustrates the repeater module 50 having an SNMP repeater information base (RB) 76 in accordance with the present invention. The RB 76 is a dedicated hardware assist chip architecture that processes the status information provided by the RICs' 60 and 62 management bus 66. Once initialized, the RIB 76 can process and store the SNMP network-management statistics independent of netwoik traffic flow with no required CPU 70 intervention and with minimal software overhead. Because the bandwidth of the real-time processing of the CPU 70 is reduced, the CPU 70 is free to function as a higher level parameter extraction device or to execute other management information bases (MBs). The RB 76 information content adheres to guidelines outlined in the BEE 802.3K specifications for a MB functioning within the bounds of SNMP.
In general, the RB 76 is a separate integrated circuit chip that is connected to the management bus 66 and the CPU 70 system bus 74. Information present on the management bus 66 is asynchronously sampled by the RB 76. The RB 76 provides its own clock. Accurate interpretation of the management bus 66 information is bounded by control signals supplied by the RICs 60 and 62. The RB 76 serves as a dedicated hardware interface for sampling and parsing the SNMP statistics from the seven byte status field appended to the incoming packet.
The RIB 76 collects thirteen simultaneous statistics and stores the parameters in the appropriate location in a dedicated management memory 78, such as a static random access memory (SRAM), as dictated by a RIC port identification code. Although the management memory 78 is shown in Figure 4 as an SRAM, it should be understood that other types of memories, such as a dynamic RAM, could be used for the management memory 78. All parameter collection is maintained in the SRAM 78. Statistics are represented as a count value from 0 to 232. As indicated by the dotted lines 80, the SRAM 78 may be located either internal or external to the RIB 76 as deemed most cost effective.
Each of the RICs 60 and 62 is capable of supporting up to thirteen ports. Because the repeater module 50 has two RICs 60 and 62 and one RB 76, the RB 76 will maintain up to twenty-six collections or blocks of statistics. Furthermore, the RIB 76 is capable of managing one collision domain or segment at any given time.
The network-control manager 58 (Figure 1) retrieves network status information from the RB 76 by issuing a command to the SNMP agent software. The command is addressed to the SONIC 68 which passes the command along to the CPU 70. The CPU 70, which runs the SNMP kernel/agent software, communicates to the RB 76 which status information is needed via the system bus 74. Because the RB 76 gives priority to new packet processing, the RB 76 will respond to the CPU 70's request when it finishes processing the current new packet. The RB 76 responds to the CPU 70 's request by retrieving the requested status information from the SRAM 78 and transferring the information to the CPU 70 via the system bus 74. The CPU 70 then builds a data packet having the requested information and sends it through the SONIC 68 and the RICs 60 or 62 back to the network-control manager 58.
Referring to Figure 4, the basic components of the RIB 76 include a management interface 82, an SNMP processor 84 (or management processor 84), a memory management unit 86, a CPU interface 88, and a register file 90.
The management interface 82 is an asynchronous interface which connects to the management bus 66 to receive the four signals MCRS, MRXC, PCOMPz, and MRXD. These four signals are generated by the RICs 60 and 62. Specifically, the MRXD signal is the management receive data signal. When asserted, this signal provides a serial data stream in NRZ format. The data stream is made up of the data packet and the seven bytes of RIC statistics information. The MRXC signal is the management receive clock. When asserted, this signal provides a clock signal for the MRXD serial data stream. The MRXD signal is changed on the falling edge of this clock. The MCRS signal is the management carrier sense signal. When asserted, this signal provides an activity framing enable for the serial output data stream MRXD. And the PCOMP signal is the packet compress signal. This input is used to identify compressed management information.
The primary functions of the management interface 82 include receiving the management bus 66 data, extracting the data as specified by management clock MRXC, detecting compressed packets as specified by the signal PCOMPz, and synchronizing the management bus 66 data to the internal clock within the SNMP processor 84 of the RIB 76.
The MCRS signal serves as a packet data envelope. The management interface 82 detects a packet start of frame detection (SFD) and then extracts the source address from the data. On the desertion, or FALSE condition, of MCRS, the seven bytes of statistics data is detected.
Table 1 above illustrates bit-by-bit all of the data that is contained in the seven bytes of statistics information appended to each incoming packet. Not all of this data is passed on to the SNMP processor 84. Instead, the management interface 82 identifies the relevant data and transfers it to the SNMP processor over a data line 92. The data line 92 may be either a serial or parallel line. The SNMP statistics, or management data, that is extracted from the management bus 66 and transferred to the SNMP processor 84 includes readable frames, readable octets, frame check sequence, alignment error, frame too long, short events, runts, collisions, late events, very long events, and date rate mismatch. A description of the management data that is passed on to the SNMP processor 84 follows. (1) Addressing information in the form of the ethernet address of the source of each packet; this data indicates to the SNMP netwoik-management system the last source address or a source address change.
(2) The RIC identification address A(5:0); referring to Table 1 above, this address is contained in bits D(7:2) of packet status register 0 (PSR(0)). This address is used by the SNMP netwoik-management system to distinguish between the RICs 60 and 62.
(3) The RIC port identification address PA(3:0); referring to Table 1 above, this address is contained in bits D(0:3) of PSR(1). This address is used by the SNMP network-management system to define the port which is receiving the packet. (4) The collision bit COL which is contained in bit D5 of PSR(l); this bit indicates to the SNMP network management system whether a receive or transmit collision occurred during packet repetition.
(5) The frame alignment error bit FAE which is contained in bit D6 of PSR(l); this bit indicates to the SNMP netwoik management system whether a frame alignment error occurred in the repeated packet.
(6) The cyclic redundancy check error bit CRCER which is contained in bit D7 of PSR(1); this bit indicates to the SNMP network management system whether a cyclic redundancy check error occurred in the repeated packet, i.e., the frame check sequence.
(7) The jabber event bit JAB which is contained in bit D2 of PSR(2); this bit indicates to the SNMP network management system that the receive packet was so long that the repeater was forced to go into a jabber protect condition, i.e., a very long event. (8) The elasticity buffer error bit ELBER which is contained in bit D3 of PSR(2); this bit indicates to the SNMP netwoik management system that during the packet an elasticity buffer under/overflow occurred indicating a data rate mismatch.
(9) The out of window collision bit OWC which is contained in bit D6 of PSR(2); this bit indicates to the SNMP netwoik management system that the packet suffered an out of window collision or a late event.
(10) The short event bit SE which is contained in bit D7 of PSR(2); this bit indicates to the SNMP netwoik management system that the receive activity was so small it met the criteria to be classified as a short event.
(11) The repeat byte counter RBY(15:0) which is contained in bits D(7:0) of PSR(4) and PSR(5); this counter indicates to the SNMP network management system the number of received bytes after the
SFD field, or, if no SFD field is repeated, the length of the packet counted in bytes, i.e., the readable frames and the readable octets.
(12) A frames too long flag which is generated by the SNMP network management system when the size of the RBY(15:0) count exceeds the maximum frame size. The SNMP processor 84 sends control information to the management interface 82 via a control line 94. Control information starts and stops the flow of data to the SNMP processor 84 along the data line 92. The control information may be used to access specific data information and, as necessary, reset the management interface 82 registers or bits. Furthermore, the control information can detect the start of data and ensure adequate synchronization of the SNMP processor 84 to the management interface 82. The SNMP processor 84, or management processor 84, serves as the core intelligence of the RB
76. The purpose of the SNMP processor 84 is to accumulate the most recent management data that is received by the management interface 82 and then update the management data stored in the SRAM 78 as necessary. Specifically, the SNMP processor 84 requests the management information from the management interface 82 via the control lines 94. As the SNMP processor 84 receives the management data from the management interface 82 over the data line 92, the SNMP processor 84 parses or separates the relevant management data bits, i.e., the COL, FAE, CRC, JAB, ELBER, OWC, SE, and RBY(15:0) bits, into specific locations within the SNMP processor 84. The SNMP processor 84 then scans the data bits for "TRUE" conditions. The terminology "TRUE" condition is intended herein to mean that the particular bit indicates, whether by a logical "1" or "0", that the condition to which it corresponds has occurred. When one of the data bits indicates a TRUE condition, the SNMP processor 84 communicates with the memory management unit 86 in order to update the corresponding memory location(s) in the SRAM 78.
The SNMP processor 84 maintains direct control over addressing information. The RIC identification address A(5:0) and the RIC port identification address PA(3:0) are passed by the SNMP processor 84 on to the memory management unit 86. On detection of a TRUE management data bit condition, the SNMP processor 84 will update the SRAM 78 memory accumulation location via the RIC identification address A(5:0) and the RIC port identification address PA(3:0).
The memory management unit 86 is responsible for translating address information provided by the SNMP processor 84 and the register file 90 into an SRAM 78 address SRA(13 :0). It also functions as an address and data multiplexer for properly funneling data to and from the SRAM 78 under the command of the SNMP processor 84.
The particular SRAM 78 that is shown in Figure 4 is external to the RIB 76. The SRAM 78 has an eight bit data bus SRD(7:0) and a fourteen bit address bus SRA(13 :0). It should be well understood, however, that the SRAM 78 may be internal and part of the RJB 76 die and that it may have a variety of size data and address lines. The concept of utilizing external SRAM 78 is to provide an economical solution to an otherwise expensive cost addition to ASIC designs. Whether the SRAM 78 is internal or external, however, the concept of information addressing and transfer of data remains basically the same. Figures 5 and 6 illustrate memory maps for the SRAM 78. Figure 5 shows that there is a portion of memory allocated to each port of each of the RICs 60 and 62. For example, the address 0080 hex corresponds to the first byte memory location for port 2 of the first RIC 60, and the address 0440 hex corresponds to the first byte memory location for port 1 of the second RIC 62.
Figure 6 shows the memory map illustrating the allocation of memory for each of the ports. The portion of memory allocated to each port is divided into several accumulation registers which each contain a different attribute of the management data. The six least significant bits of the SRAM 78 address SRA(5:0) point to the first byte of each attribute and are therefore referred to herein as the "attribute offset". For example, all of the collision statistics data generated by the COL bit for port 2 of the first RIC 60 are stored in the memory accumulation register which begins at address 009C hex, which is calculated as follows:
Port 2, RIC 0 addr = 0000 0000 1000 0000 = 0080 hex COL attribute addr = 0000 0000 0001 1100 = 001C hex
+
0000 0000 1001 1100 = 009C hex
Each memory accumulation register is four bytes, or thirty-two bits, wide. Because the data bus SRD(7:0) of the external SRAM 78 is only a byte wide, each register has four addresses corresponding to the four bytes. In other words, the address of the first byte of each attribute register is offset by four memory byte locations from the address of the first byte of the next attribute register. As will be discussed below, because the total length of each attribute register is thirty-two bits, but only eight bits can be updated at a time, the least significant byte must be updated and then each successive byte checked for carry bits. However, if an internal SRAM 78 were used, the data bus could be thirty-two bits wide so that there would be no need to check for carry bits. The nature of the RB 76 SNMP parameter collection involves the following. First, the RIB 76 identifies and parses the incoming management information as provided by the management bus 66. Second, the receiving port is identified and the port address determined. Third, the target block statistics as dictated by the management bus status bits are updated.
Referring to Figures 7 through 9, the RIB 76 management data accumulation procedure begins with the management interface 82 asynchronously receiving the next data packet, as described above. The management interface 82 passes the management data consisting of the bits COL, FAE, CRC, JAB, ELBER, OWC, and SE to the SNMP processor 84. The RIC address A(5:0) and the RIC Port Address PA(3:0) are passed directly to the memory management unit 86. The SNMP processor 84 parses the management data into specified locations. Once the management data is parsed into specified locations, the SNMP processor 84 begins a polling, or scanning, procedure in order to determine which, if any, of the management data bits FAE, CRC, JAB, ELBER, OWC, SE, RBY and Frames Too Long indicate a TRUE condition. The bits are looked at by the SNMP processor 84 one by one and need not be looked at in any specific order.
As indicated by the flow chart in Figure 7, the polling procedure begins by the SNMP processor 84 setting a bit pointer counter equal to zero. The purpose of the bit pointer counter is to point to the current management data bit that is being polled. It is incremented by one after each bit is polled and the SRAM 78 memory contents updated, if necessary.
After the bit pointer counter is set equal to zero, an if-then loop in the procedure determines whether the bit pointer counter is less than or equal to six. The number six is chosen because the polling procedure will be polling seven management data bits, i.e., the COL, FAE, CRC, JAB, ELBER, OWC, and SE bits. After the seventh bit has been polled, the bit pointer counter will have been incremented to seven and the management data accumulation procedure will start over with the management interface 82 asynchronously receiving the next data packet.
If, however, the bit pointer counter is less than or equal to six, the SNMP processor 84 polls the management data bit to which the bit pointer counter is currently pointing. If the management data bit does not indicate a TRUE condition, then the SRAM 78 memoiy contents do not need to be updated. The bit pointer counter is then incremented by one and is again tested to determine if it is less than or equal to six.
If the management data bit does indicate a TRUE condition, the procedure shown in Figure 8 is then executed. As shown in Figure 8, the SNMP processor 84 next determines whether the overflow status bit for the specific SRAM 78 memory location indicates a TRUE condition. If a TRUE condition is indicated, then the thirty-two bit memory location is full; the procedure jumps out of the loop, increments the bit pointer counter by one, and begins to poll the next management data bit. If, however, a TRUE condition is not indicated, the SNMP processor 84 begins a read-modify-write procedure. The purpose of the read-modify-write procedure is to update the attribute memory accumulation register in the SRAM 78 in order to reflect that the current management data bit indicates a TRUE condition. The process of individual parameter update operates on the principle of counter increment, i.e., incrementing the accumulation register. Each parameter is represented as a count value of 0-232. Counter update is described as the process of pointing to the least significant byte of the attribute accumulation register and performing a read-modify-write operation. Each operation requires the byte operation to be incremented by one. This procedure is recursively executed for a possible maximum of three additional operations, or until the exhaustion of a carry bit. In situations where a boundary, or overflow condition is detected, the counter may remain set at the bounded state until the CPU 70 intervenes. In accordance with this procedure, the SNMP processor 84 passes a bit TRUE condition to the memory management unit 86. The memory management unit 86 generates an SRAM 78 address having the proper attribute offset. The memory management unit 86 then reads the SRAM 78 attribute accumulation register and passes the data to the SNMP processor 84. The SNMP processor 84 increments the memory contents by one and then updates the carry bit if the register overflows. The incremented contents are then passed back to the memory management unit 86. The memory management unit 86 writes the memory contents back to the SRAM 78 attribute accumulation register.
If the SRAM 78 is internal to the RIB 76, then the width of the data bus SRD will probably be equal to the total bit length of each of the attribute accumulation registers. In this scenario, the entire contents of the attribute accumulation registers, i.e., all thirty-two bits, can be read and written to at one time. Therefore, the only time that there will be a carry bit is when the register is full. In this scenario, the dotted lines in Figure 8 indicate that the carry bit will be checked for a TRUE condition, and if there is a carry bit, then the register is full and the SNMP processor 84 will set the over-flow status flag (bit) to indicate a TRUE condition. Because no other carry bits need to be taken into account, the read-modify- write procedure ends after the memory contents have been written back to the SRAM 78. The bit pointer counter is then incremented by one as indicated by the dotted line in Figure 8.
As mentioned above, however, the SRAM 78 shown in Figure 4 is external to the RB 76 and has only an eight bit data bus SRD(7:0). Because the total length of each of the attribute accumulation registers is thirty-two bits, the register must be read and written to four times, i.e., one byte at a time. Therefore, carry bits from each byte must be taken into account. Referring to Figure 9, a procedure for taking carry bits into account begins with the SNMP processor 84 setting an attribute offset counter equal to zero. The purpose of the attribute offset counter is to keep track of which of the four bytes of the accumulation register is currently being checked for cany bits. The procedure then determines if the carry bit indicates a TRUE condition. If not, then there was no carry bit from the first byte and there is no reason to read-modify-write the other three bytes. If the carry bit is TRUE, however, the next significant byte must be incremented by one. The memory management unit 86 increments the SRAM 78 address by one so that the address points to the next significant byte. A read-modify-write routine and carry bit update similar to above is performed in order to increment the byte by one. The attribute offset counter is then incremented by one and the new carry bit is checked for a TRUE condition. The procedure continues until the attribute offset counter is equal to three, i.e., the fourth byte has been incremented by one. If the attribute offset counter is equal to three and there is a carry bit, then the thirty-two bit attribute accumulation register is full and the overflow status bit is set to a TRUE condition. The procedure then increments the bit pointer counter by one and the next management data bit is polled. The over flow status bit is reset when the system is reset; it can also be reset by the CPU 70. Figure 10 illustrates a timing diagram for the SRAM 78 read operation. Valid data is available on the data bus SRD(7:0) within an access time Tl after a valid address has been received by the SRAM 78 over the address bus SRA(13:0).
Figure 11 illustrates a timing diagram for the SRAM 78 write operation- When a valid address has been sent over the address bus SRA(13 :0), the memory management unit 78 asserts the write data strobe SRWRz to begin writing data over the data bus SRD(7:0). The memory management unit 86 is responsible for generating the correct timing parameters for the SRAM 78. The timing parameters for the SRAM 78 are specified by the CPU 70 in the SRAM timing specification section which is located in bits 4 and 5 of configuration register 2 (discussed below). Variations on the timing interface occur according to information programmed in these two bits by the CPU 70. The SRAM 78 addressing requirements are specified in bit 3 of configuration register 2 for support of one or two external RICs.
Information will continue to accumulate in a given port database until an Agent request for that specific port is issued. Referring back to Figures 3 and 4, the CPU interface 88 is used to connect the RIB 76 to the system bus 74. The system bus 74, which connects the CPU 70, the RAM 72, and the SONIC 68, contains address and data lines, as well as lines for the control signals INTz, CSz, RDz, WRz, ALE, and CLK. When the network-control manager 58 issues a command to the SNMP agent software, the CPU 70 communicates with the RIB 76 via the control lines and the address and data lines in the system bus 74. The SNMP processor 84 retrieves the requested status information from the SRAM 78 and transfers the information to the CPU 70 via the system bus 74. The purpose of the CPU interface 88 is to ensure the proper transfer of asynchronous data, address and control information to the register file 90. It is important to note that incoming CPU 70 requests are processed on an asynchronous basis with respect to the SNMP processor 84. The CPU interface 88 resynchronizes all activity and transfers data at the appropriate time.
The pmpose of the register file 90 is to serve as a port to issue the CPU 70 commands, write, and retrieve data, and basically maintain data register cohesion between the external system, i.e., the CPU 70, and the internal SNMP processor 84 and the memory management unit 86. The register file 90 contains a command register set that is addressable by the CPU 70. Figure 12 shows a register map of the register file 90's command register set.
The CPU 70 commands the RB 76 via the command register set. The SNMP Processor 84 coordinates and synchronizes all internal processes as a function of activity directly generated by the SNMP processor 84 and activity requested by the CPU 70 through the register file 90. The functions initiated directly by the SNMP processor 84 maintain higher priority over those generated by the register file 90. In order to extract parameters from the RB 76, the CPU 70 issues a command to the command register set in the register file 90. The SNMP processor 84 synchronizes the request between incoming packets, extracts data from the SRAM 78, and places the results into a temporary data buffer that can hold up to six bytes. This temporary data buffer is shown in Figure 12 as the six Read Data Byte registers 1- 6; the number of Read Data Byte registers that are used is programmable by the CPU 70 via the Configuration register 1. The SRAM 78 attribute accumulation register for that port is then reset to zero. The CPU 70 extracts the data from the data buffers, i.e., Read Data Byte registers 1-6, and begins the process of tailoring the data into a format that the SNMP agent can interpret.
Figure 13 illustrates the Configuration register 1 of the command register set. The Configuration register 1 is located at address 00 hex with respect to the CPU 70. The CPU 70 commands the RB 76 to start processing management statistics by setting bit 7 of this register. Upon condition TRUE of this bit, the SNMP data information present in the command registers will be processed. This applies to Read Data Byte n and Write Data Byte operations (discussed below). For example, under a Read Data Byte operation, the SNMP processor 84 will pass SRAM address information, as contained in the Access 1 and 2 registers, to the memory management unit 86.
The CPU 70 sets bit 5 of the Configuration register 1 in order to initiate an SRAM 78 write. The Access registers 1 and 2 pass address information to the memoiy management unit 86 and the contents of the Write Data Byte register are written to the SRAM 78. Upon completion of the write operation, the RIB 76 resets bit 5 to a FALSE condition.
The CPU 70 sets bit 4 of the Configuration register 1 in order to initiate an SRAM 78 read. Address information is placed in Access registers 1 and 2 and is passed to the memory management unit 86. The data that is read from the SRAM 78 is placed in the data buffers, i.e., Read Data Byte registers 1-6, where it is passed back to the CPU 70. The number of Read Data Byte registers that receive data is programmed by the CPU via the Configuration register 1. Upon completion of the read, bit 4 is reset to FALSE.
The CPU 70 sets bit 3 of the Configuration register 1 in order to initiate an SRAM 78 fill. In other words, the SNMP processor 84 will fill the SRAM 78 with the data pattern contained in the Write Data Byte register. Upon completion of the fill, the SNMP processor resets bit 3.
The CPU 70 uses bits (2:0) of the Configuration register 1 in order to set the number of bytes that are to be accessed from the SRAM 78 and buffered into the Read Data Byte registers. Because there are six Read Data Byte registers, bits (2:0) cannot exceed six. Therefore, the SNMP processor 84 fills the Read Data Byte registers until the value of bits (2:0) is reached.
Figure 14 illustrates the Configuration register 2 of the command register set. The Configuration register 2 is located at address 01 hex with respect to the CPU 70. The CPU 70 sets bit 7 of the Configuration register when the RICs 60 and 62 are in security mode (discussed below). When the RICs 60 and 62 are in security mode, the SNMP processor 84 must know that the bit fields specified by management interface 82 change definition.
The CPU 70 sets bit 6 of the Configuration register 2 in order to instruct the SNMP processor 84 clear the SRAM 78 memory contents after an SRAM 78 read operation. If bit 6 is not set, the SRAM 78 memory contents will be maintained after an SRAM 78 read.
As mentioned above, bits (5:4) of the Configuration register 2 specify the SRAM 78 access time TA. The bits are set to 00 for 0ns < TA ≤ 20ns, 01 for 25ns < TA ≤ 35 ns, and 10 for 35ns < TA ≤ 55ns. The SNMP processor 84 is not affected by these bits. It should be noted that if the SRAM 78 is internal to the RIB 76, these bits are not utilized.
Figure 15 illustrates the Interrupt Mask register which is addressable by the CPU 70 at address 03 hex. These bits serve as a mask for interrupts constantly being generated by the SNMP processor 84. Figure 16 illustrates the Interrupt Status register which is addressable by the CPU 70 at address 04 hex. These bits are constantly being generated by the SNMP processor 84 to reflect the state of the SNMP processor 84 and indicate the interrupts status.
Figure 17 illustrates one of the Read Data Byte transfer registers which are addressable by the CPU 70 at address 10 hex through 15 hex. These registers serve as temporary data buffers, i.e., first-in-first- out register (FIFO) like, for the CPU 70 access.
Figures 18 and 19 illustrate the Access registers 1 and 2 which are addressable by the CPU 70 at addresses 20 hex and 21 hex, respectively. As mentioned above, the Access registers 1 and 2 are used to pass address information to the memory management unit 86 and basically serve as an SRAM 78 address pointer. The Access register 1 specifies the attribute offset, and the access register 2 specifies which RIC 60 or 62 and which port. Figure 20 illustrates the port/attribute SRAM 78 pointer that is generated by the memory management unit 86 after receiving the Access registers 1 and 2. The CPU 70 will not see the port/attribute SRAM 78 pointer.
Figure 21 illustrates the Write Data Byte register which is addressable by the CPU 70 at address 22 hex. The CPU 70 uses this register to write data to the SRAM 78. Figure 22 illustrates the RIC ID registers 1 and 2 which are addressable by the CPU 70 at addresses 30 hex and 31 hex, respectively. The contents of these registers are used to match to the programmed unique identification of a specific RIC.
Figures 23 and 24 illustrate the Overflow Status registers 1 and 2 which are addressable by the CPU 70 at addresses 40 hex and 41 hex, respectively. The bits of the Overflow Status registers 1 and 2 indicate which attribute accumulation registers are full.
Figures 25 and 26 illustrate the Port Attributes Status registers 1 and 2 which are also addressable by the CPU 70. These registers are constantly being updated and reflect the current state of the SNMP processor 84. Updating the Port Attributes Status registers is part of the so-called "housekeeping chores" of the SNMP processor 84. One purpose of such housekeeping chores is to keep the CPU 70 updated as to the status of the RIB 76.
As mentioned above, the system bus 74 carries the control signals INTz, CSz, RDz, WRz, ALE, and CLK. The RB 76 generates the interrupt signal INTz when an interrupt is pending from one of the sources indicated by the Interrupt Status register. However, interrupts that are masked in the Interrupt Mask register will not activate INTz. Figure 27 illustrates a timing diagram for a CPU 70 command register read. The CPU 70 asserts the chip select signal CSz low in order to access the RB 76's command registers in the register file 90. The registers are selected by placing an address on the address/data lines in the system bus 74. The CPU 70 asserts the address latch enable ALE to indicate that a valid address is on the address/data lines during a register operation. The CPU 70 asserts the read data strobe RDz low to indicate when data may be driven onto the address/data lines during the register read operation- Figure 28 illustrates a timing diagram for a CPU 70 command register write. The write data strobe WRz is asserted by the CPU 70 to indicate that valid data is on the address/data bus during a register write operation-
Figure 29 illustrates a connection diagram for one embodiment of the RB 76. Figure 30 and 31 provide descriptions of the pins for the RB 76 shown in Figure 29. As set forth in National Semiconductor Corporation's publication entitled Local Area Networks
Databook. 1993 Edition, pages 3-3 through 3-73 (also cited above), the RICs 60 and 62 are capable of operating in a secure mode. The RB 76 is capable of operating with the RICs 60 and 62 when they are operating in secure mode. When the RICs 60 and 62 are in the secure mode, the information content of the management bus 66 changes. In order for the RB 76 to conform to these changes, the RIC security mode bit in Configuration register 2 (Olh) is set. In the secure mode the packet source address stays the same and SNMP processing can proceed as under non-secure conditions. However, the seven management data bytes are changed. The original register PSR(5) is remapped as follows. RBY(8:10) remain the same. Bit D3, however, becomes the RUNT bit. RUNT is defined as a packet length that is less than 64 bytes or greater than or equal to short event length This provides SNMP RUNT information update. Bit D4 becomes source address mismatch (SAM). This bit provides no SNMP value.
Given that the RB 76 serves as a dedicated hardware collection device, the ability to process data virtually real-time, independent of the amount of traffic flow on the netwoik lends itself as a powerful asset in any CPU based SNMP platform. With cost targets of the RB 76 below comparable CPU cost per function, the remaining CPU 70 bandwidth can be used to process more complex MBs. For cost sensitive systems, the combination of the RB 76 with a lower cost CPU 70 can also serve as an attractive alternative in lowering overall system cost.
It should be understood that various alternatives to the embodiments of the invention described herein may be employed in practicing the invention. It is intended that the following claims define the scope of the invention and that structures and methods within the scope of these claims and their equivalents be covered thereby.

Claims

CLAIMS What is claimed is:
1. Apparatus for accumulating management data from a netwoik repeater, comprising: a register file having a set of command registers addressable by an external CPU for receiving commands from the external CPU; a memory management unit connectable to a management memory for generating addresses and for coordinating transfers of data to and from the management memory; and a management processor for separating the management data into individual bits, polling the individual bits to determine which bits indicate a condition which should be recorded, and transferring data to and from the memory management unit in order to update the contents of the management memory for each such condition, the management processor capable of responding to commands received by the register file from the external CPU by communicating with the memory management unit to retrieve management data from the management memory for delivαy to the register file.
2. An apparatus in accordance with claim 1, wherein the command register set in the register file comprises: a configuration register for receiving commands from the external CPU; a read data byte register for transferring management data from the memory management unit to the external CPU; and an access register for transferring address information from the external CPU to the memory management unit.
3. An apparatus in accordance with claim 2, wherein the command register set in the register file further comprises: an interrupt status register for indicating to the external CPU a plurality of conditions in which the apparatus will generate an interrupt signal; an interrupt mask register for selectively disabling conditions in which the apparatus will generate the interrupt signal; a write data byte register for receiving data from the external CPU that is to be written into the management memory; a repeater identification register for identifying one of several repeaters; and an overflow status register for indicating when an attribute accumulation register in the management memory is full.
4. An apparatus in accordance with claim 1 , wherein the management processor updates the contents of the management memory by following a read-modify-write procedure comprising the steps of: passing a bit true condition from the management processor to the memory management unit; the memory management unit generating a management memoiy address having an attribute offset that will point to an attribute accumulation register in the management memory that accumulates data corresponding to the condition; the memory management unit reading the attribute accumulation register and passing its contents to the management processor, the management processor incrementing the contents of the attribute accumulation register by one; and the memory management unit writing the contents back to the attribute accumulation register.
5. An apparatus in accordance with claim 1, further comprising: a management interface connectable to a management bus of the repeater for collecting the management data from the repeater, and a CPU interface connectable to an address and data bus connected to the external CPU.
6. An apparatus in accordance with claim 1, wherein the management memory comprises a static random access memory (SRAM).
7. A repeater information base (RB) for accumulating management data from a netwoik repeater and for providing at least a portion of the accumulated management data to a CPU in response to commands from the CPU, comprising: a management interface connectable to a management bus of the repeater for collecting the management data from the repeater, a CPU interface connectable to an address and data bus connected to the CPU; a register file responsive to the CPU interface and having a set of command registers addressable through the CPU interface for receiving commands from the CPU; a management memory for storing the management data; a memory management unit having address and data lines connected to the management memory for generating addresses for the management memory and for transferring management data to and from the management memory; and a management processor for receiving the management data from the management interface, separating the management data into individual bits, polling the individual bits to determine which bits indicate a condition which should be recorded, and transferring data to and from the memory management unit for updating the contents of the management memory for each such condition, the management processor capable of responding to commands received from the register file by communicating with the memory management unit to retrieve management data from the management memory for delivery to the register file.
8. A RB in accordance with claim 7, wherein the command register set in the register file comprises: a configuration register for receiving commands from the CPU; a read data byte register for transferring management data from the memoiy management unit to the CPU; and an access register for transferring address information from the CPU to the memory management unit.
9. A RIB in accordance with claim 8, wherein the command register set in the register file further comprises: an interrupt status register for indicating to the CPU a plurality of conditions in which the RB will generate an interrupt signal; an interrupt mask register for selectively disabling conditions in which the RIB will generate the interrupt signal; a write data byte register for receiving data from the CPU that is to be written into the management memory; a repeater identification register for identifying one of several repeaters; and an overflow status register for indicating when an attribute accumulation register in the management memoiy is full.
10. A RB in accordance with claim 7, wherein the management processor updates the contents of the management memory by following a read-modify-write procedure comprising the steps of: passing a bit true condition from the management processor to the memory management unit; the memory management unit generating a management memoiy address having an attribute offset that will point to an attribute accumulation register in the management memory that accumulates data corresponding to the condition; the memory management unit reading the attribute accumulation register and passing its contents to the management processor, the management processor incrementing the contents of the attribute accumulation register by one; and the memory management unit writing the contents back to the attribute accumulation register.
11. A RB in accordance with claim 7, wherein the management memory is mapped into a plurality of attribute accumulation registers for accumulating management data corresponding to each port of the repeater.
12. A RIB in accordance with claim 11, wherein thirty-two bits of management memory is allocated to each attribute accumulation register.
13. A RB in accordance with claim 7, wherein the management memory comprises a static random access memory (SRAM).
14. A RB in accordance with claim 7, wherein the management memory is internal to the RB.
15. A RB in accordance with claim 14, wherein the data line connecting the memoiy management unit to the management memory is thirty-two bits wide.
16. A RIB in accordance with claim 7, wherein the management memory is external to the RB.
17. A R in accordance with claim 16, wherein the data line connecting the memory management unit to the management memory is eight bits wide.
18. A RIB in accordance with claim 7, wherein the management interface and the CPU interface transfer data asynchronously.
19. A netwoik repeater module, comprising: a repeater having a plurality of ports that are each connectable to a netwoik node, the repeater having a management bus for carrying management data; a CPU for running network management software, the CPU having a CPU bus; a netwoik controller connected to the management bus and the CPU bus for coordinating the transfer of the management data from the management bus to the CPU; and a repeater information base (RB) connected to the management bus and the CPU bus for accumulating the management data from the management bus and for providing the accumulated management data to the CPU in response to commands received from the CPU.
20. A netwoik repeater module in accordance with claim 19, wherein the RB comprises: a register file having a set of command registers addressable by the CPU for receiving commands from the CPU; a memory management unit connectable to a management memory for generating addresses and for coordinating transfers of data to and from the management memory; and a management processor for separating the management data into individual bits, polling the individual bits to determine which bits indicate a condition which should be recorded, and transferring data to and from the memory management unit in order to update the contents of the management memory for each such condition, the management processor capable of responding to commands received by the register file from the CPU by communicating with the memory management unit to retrieve management data from the management memory for delivery to the register file.
21. A netwoik repeater module in accordance with claim 20, wherein the command register set in the register file comprises: a configuration register for receiving commands from the CPU; a read data byte register for transferring management data from the memory management unit to the CPU; and an access register for transferring address information from the CPU to the memory management unit.
22. A netwoik repeater module in accordance with claim 21, wherein the command register set in the register file further comprises: an interrupt status register for indicating to the CPU a plurality of conditions in which the apparatus will generate an interrupt signal; an interrupt mask register for selectively disabling conditions in which the apparatus will generate the interrupt signal; a write data byte register for receiving data from the CPU that is to be written into the management memory; a repeater identification register for identifying one of several repeaters; and an overflow status register for indicating when an attribute accumulation register in the management memory is full.
23. A netwoik repeater module in accordance with claim 20, wherein the RB further comprises: a management interface connected to the management bus of the repeater for collecting the management data from the repeater, and a CPU interface connected to the CPU bus for receiving commands from the CPU.
24. A method of accumulating management data generated by a repeater, the method comprising the steps of: separating the management data into- individual bits; polling the individual bits to determine which bits indicate a condition which should be recorded; upon the occurrence of a condition which should be recorded, generating a management memoiy address having an attribute offset that will point to an attribute accumulation register in a management memoiy for accumulating data corresponding to the condition; reading the contents of the attribute accumulation register, incrementing the contents of the attribute accumulation register by one; writing the incremented contents back to the attribute accumulation register, and providing status information and accumulated management data to an external CPU.
25. A method in accordance with claim 24, further comprising the steps of: checking the incremented contents to determine if a carry bit was produced; upon the occurrence of a carry bit, incrementing the management memory address by one so that the incremented management memory address will point to additional contents of the attribute accumulation register, reading the additional contents of the attribute accumulation register, incrementing the additional contents of the attribute accumulation register by one; and writing the incremented additional contents back to the attribute accumulation register.
26. A method of accumulating management data generated by a repeater, the method comprising the steps of: providing a dedicated repeater information base (RB) having a management interface for receiving the management data; the RB having a management processor for separating the management data into individual bits; the management processor polling the individual bits to determine which bits indicate a condition which should be recorded; the RIB having a memory management unit for, upon the occurrence of a condition which should be recorded, generating a management memory address having an attribute offset that will point to an attribute accumulation register in a management memory for accumulating data corresponding to the condition; the memory management unit reading the contents of the attribute accumulation register and passing the contents to the management processor, the management processor incrementing the contents of the attribute accumulation register by one and passing the incremented contents to the memory management unit; and the memory management unit writing the incremented contents back to the attribute accumulation register.
27. A method in accordance with claim 26, further comprising the steps of: the management processor checking the incremented contents to determine if a carry bit was produced; upon the occurrence of a cany bit, the memory management unit incrementing the management memory address by one so that the incremented management memory address will point to additional contents of the attribute accumulation register, the memory management unit reading the additional contents of the attribute accumulation register and passing the additional contents to the management processor, the management processor incrementing the additional contents of the attribute accumulation register by one and passing the incremented additional contents to the memoiy management unit; and the memory management unit writing the incremented additional contents back to the attribute accumulation register.
PCT/US1994/010074 1994-02-14 1994-09-08 Repeater information base for snmp network management statistics accumulation WO1995022216A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US19499094A 1994-02-14 1994-02-14
US08/194,990 1994-02-14

Publications (1)

Publication Number Publication Date
WO1995022216A1 true WO1995022216A1 (en) 1995-08-17

Family

ID=22719634

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1994/010074 WO1995022216A1 (en) 1994-02-14 1994-09-08 Repeater information base for snmp network management statistics accumulation

Country Status (1)

Country Link
WO (1) WO1995022216A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996015606A1 (en) * 1994-11-10 1996-05-23 Advanced Micro Devices, Inc. Apparatus and method for selectively storing error statistics
WO1998036538A1 (en) * 1997-02-14 1998-08-20 Advanced Micro Devices, Inc. Integrated multiport switch having management information base (mib) interface temporary storage
US5991305A (en) * 1997-02-14 1999-11-23 Advanced Micro Devices, Inc. Integrated multiport switch having independently resettable management information base (MIB)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0033591A1 (en) * 1980-01-15 1981-08-12 The Post Office Improvements in or relating to data transmission systems
WO1988006822A1 (en) * 1987-02-24 1988-09-07 Digital Equipment Corporation Distributed local-area-network monitoring system
EP0495575A1 (en) * 1991-01-18 1992-07-22 National Semiconductor Corporation Repeater interface controller

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0033591A1 (en) * 1980-01-15 1981-08-12 The Post Office Improvements in or relating to data transmission systems
WO1988006822A1 (en) * 1987-02-24 1988-09-07 Digital Equipment Corporation Distributed local-area-network monitoring system
EP0495575A1 (en) * 1991-01-18 1992-07-22 National Semiconductor Corporation Repeater interface controller

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
M.J. BURDICK: "Continuous Monitoring of Remote Networks: The RMON MIB", HEWLETT-PACKARD JOURNAL, vol. 44, no. 2, April 1993 (1993-04-01), PALO ALTO US, pages 82 - 89, XP000360816 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996015606A1 (en) * 1994-11-10 1996-05-23 Advanced Micro Devices, Inc. Apparatus and method for selectively storing error statistics
WO1998036538A1 (en) * 1997-02-14 1998-08-20 Advanced Micro Devices, Inc. Integrated multiport switch having management information base (mib) interface temporary storage
US5991305A (en) * 1997-02-14 1999-11-23 Advanced Micro Devices, Inc. Integrated multiport switch having independently resettable management information base (MIB)
US6029197A (en) * 1997-02-14 2000-02-22 Advanced Micro Devices, Inc. Management information base (MIB) report interface for abbreviated MIB data
US6108342A (en) * 1997-02-14 2000-08-22 Advanced Micro Devices, Inc. Management information base (MIB) accumulation processor
US6130891A (en) * 1997-02-14 2000-10-10 Advanced Micro Devices, Inc. Integrated multiport switch having management information base (MIB) interface temporary storage

Similar Documents

Publication Publication Date Title
US6985969B1 (en) Receiving data on a networked computer in a reduced power state
US6697870B1 (en) Method and apparatus for real-time protocol analysis using an auto-throttling front end process
US6662234B2 (en) Transmitting data from a host computer in a reduced power state by an isolation block that disconnects the media access control layer from the physical layer
US6483812B1 (en) Token ring network topology discovery and display
EP0585082B1 (en) Computer management system and associated management information base
US5243543A (en) Remote LAN segment traffic monitor
JP2644200B2 (en) Data capture device
US6735629B1 (en) Method and apparatus for real-time protocol analysis using an active and adaptive auto-throtting CPU allocation front end process
CN110213143A (en) A kind of 1553B bus IP Core and monitoring system
US5479613A (en) Real-time ring bandwidth utilization calculator, calculating bandwidth utilization based on occurrences of first and second predetermined bit patterns
EP0976226B1 (en) Integrated multiport switch having shared media access control circuitry
CN111800226B (en) Sideband management circuit and method based on hardware arbitration
CN1160908C (en) Network controller
EP0739561B1 (en) Apparatus and method for selectively storing error statistics
WO1995022216A1 (en) Repeater information base for snmp network management statistics accumulation
US5778172A (en) Enhanced real-time topology analysis system or high speed networks
Froehlich et al. The Froehlich/Kent Encyclopedia of Telecommunications: Volume 9-IEEE 802.3 and Ethernet Standards to Interrelationship of the SS7 Protocol Architecture and the OSI Reference Model and Protocols
US5774745A (en) Method and apparatus for writing and reading entries in an event status queue of a host memory
Cisco Interface Configuration and Support
CN114531380A (en) Mirror image quality checking method and device and electronic equipment
McMaster et al. Definitions of Managed Objects for IEEE 802.3 Repeater Devices
Stewart Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2
JP2617648B2 (en) Network configuration recognition device
Neo et al. Design of PC adapter and data link driver for high speed networking
JURGENSEN A new concept in real-time networking

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP KR

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase