This invention relates to performance measurements and to the detection of link connectivity in communication systems and particularly for Ethernet OAM circuits.
The standard specifications for operation of Ethernet OAM (Operation, Administration and Management) circuits, and particularly those conforming to IEEE 802.1ag and ITU-T Y.1731, include checks for connectivity and performance measurements between management points (MPs) in a management domain (MD). The management points comprise management endpoints (MEPs) and management intermediate points (MIPs). The management points exchange messages called ‘connectivity fault management’ (CFM) messages and ‘performance monitoring’ (PM) messages for these purposes. A subset of the CFM messages comprises ‘connectivity check’ (CCM) messages. These are employed such that management endpoints determine whether they have received a valid CCM within a prescribed time. The period, i.e. the interval between transmissions, can be configured, i.e. selected for each connection. A connectivity error is reported by an endpoint when a CCM has not been received from the end point's peer within a set multiple (presently 3.5) of the CCM transmission interval. Thus at the fastest CCM rate (3.3 ms) an error will be reported when a message from the peer is not received within 3.5×3.3=11.55 ms. Some CCM messages can carry counter values that are used to derive performance measurements at each MEP. These counter values represent numbers of transmitted and received packets within a given timer interval. Furthermore, specific PM messages can be exchanged to measure performance parameters such as frame loss, frame delay and variation in frame delay.
Such messages as indicated above are called herein generically ‘management messages’ which term is intended to embrace OAM messages and their equivalents.
A management point can ‘exist’ on a port of a network terminal. It can be used to monitor all connections from that port, or can be used to monitor selected service connections, those being identified by ‘service identifier’. This term is used herein to include an identification of a respective VLAN (virtual local area network). An MP can denote one of two directions. A ‘Down’ MP points towards the local area connection and away from the relay function of a switch or router, whereas an ‘Up’ MP points away from the local area connection towards the relay function of the switch or router. Lastly, there can be a number of operational levels at which an MP can operate (currently 8) and the operational level typically defines the range of the monitored connection, higher numbers indicating the longer ranges. A received CFM or PM packet therefore contains fields which are denoted herein the VLAN, DIRECTION and LEVEL fields. The corresponding port on which the packet is processed forms the ‘PORT’ field used in the identification process.
An MEP that transmits a CCM packet also includes a MEPID (MEP identification) field to identify the transmitting MEP at the receiving MEP. This MEPID must be configured in the receiving MEP. If it is not, an error is indicated.
Accordingly, all CFM messages need a lookup process in order to identify a management point to which they are addressed. Similarly, PM messages need a corresponding lookup process. CCM messages also need a further lookup stage to identify a peer MEP.
A network terminal (such as a switch or a router) can contain many management points, each monitoring different connections or services. Each CFM or PM packet contains fields that are used to select a management point. When such a CFM or PM packet is received at a network terminal containing management points, the management points to which it is addressed must be identified by means of a management point identification process. A management point can be identified by the combination of four fields, those being the port on which the management point exists, the VLAN or service identifier of the management point, the directional attribute of the management point (Up or Down) and the level of the management point (of which there are currently up to 8). One possible identification method is to form a lookup key by concatenating all 4 fields and using that key to address a table to read the result. While the identification process time will be short (only one read cycle), the required table for this method by necessity is very large (2N where there are N address bits) but will typically be relatively sparsely populated. For received CCM packets, once the MEP is identified, a second process is required to verify that the peer MEP from which the packet was transmitted is configured in the receiving MEP. The standards allow for thousands of peer MEPs (currently 8K). Therefore a large, but typically sparsely populated, search table will be required if a similar lookup method is used.
All CFM messages need a lookup process in order to identify the management point to which they are addressed. Similarly, PM messages need a corresponding lookup process. CCM messages also need a further lookup stage to identify the peer MEP.
The present invention aims to reduce the table sizes required for both these processes while still keeping the lengths of the management point identification process and peer MEP verification process to small and predictable times independent of the table sizes.
The present invention is based on the combination of lookup mechanisms to maintain short search times and efficient table storage during the processing of management messages such as OAM messages and particularly CFM and PM packets. The invention may be implemented in hardware, no special software intervention being required.
In one aspect the invention provides a search engine for the identification of a management point for a management message, the engine including a table containing entries indexed according to a service identifier and each containing a first address pointer and an identification of which ports out of a multiplicity of ports are associated with valid management points; and logic for generating addresses by a progressive incremental offset of an address indicated by the address pointer in accordance with an ordered count of the instances of the ports associated with the management points.
The search engine preferably further comprises a second table indexed by means of an address generated by said logic and containing entries each of which includes a second address pointer and an identification of the respective operational levels of management points existing on a respective port, and logic for generating secondary addresses by a progressive incremental offset of an address indicated by the second address pointer in accordance with an ordered count of the instances of operational levels.
The said identifications may comprise bit masks.
The search engine preferably further comprises a configuration table which contains entries each identifying a management point by service identifier, port and operational level, the configuration table being indexed by the secondary addresses.
Particularly for CCM messages, the search engine preferably further comprises stages for the validation of the identity of a peer management end point as stored in the configuration table.
These latter stages may perform a trie search.
In another aspect the invention provides a method of operation of a communication system, comprising of a multitude of management points that transmit and receive repetitive management messages on links between a management point and its peer management points of which there can be a minimum of one and a maximum imposed by the standards; and identifying a management point to which such a message is addressed and also (particularly for the CCM subset of CFM messages) the endpoint from which the message was transmitted, the method including storing entries indexed according to a service identifier in the message and each containing a first address pointer and an identification of which ports out of a multiplicity of ports are associated with valid management points generating first addresses by a progressive incremental offset of an address indicated by the address pointer in accordance with an ordered count of the instances of the ports associated with the management points; indexing, by means of the first addresses, a table containing entries each of which includes a second address pointer and an identification of the respective operational levels of the instances of management points existing on a respective port, generating secondary addresses by a progressive incremental offset of an address indicated by the second address pointer in accordance with an ordered count of the respective operational levels; and indexing by means of the secondary addresses a configuration table which contains entries each identifying management points by service identifier, port and operational level.
The configuration data includes a unique MEPID, a management point Level at which the CFM or PM messages operate, a VLAN identifier associated with the connection being monitored, a management point direction and the known peer management point. This data is associated with a port number on which the management point exists. Note that this diagram shows a point to point connection with a pair of management points, but this can be expanded to a system with up to 8K peer management points interconnected in a single monitored maintenance association.
Management point A is enabled by an appropriate message from the network provider 1. Its management software A1 immediately enables (in this example) a CCM transmit state machine A2 and a CCM receive state machine A3. The CCMs from the CCM transmit state machine A2 travel on the data channel to the CCM receive state machine B3 in management point B and the CCM state machine A3 is enabled to receive CCMs from the CCM state machine B2 in management point B.
Some time later, for example after an interval greater than 11.55 ms, the network provider 1 enables management point B and in particular the CCM receive and transmit state machines B3 and B2 in management point B.
When the state machine is enabled it enters the IDLE state 30. This is formally denoted as the ‘RMEP_IDLE’ state; for simplicity herein the prefix RMEP (Remote Management End Point) will be omitted. After a delay (to be explained) machine enters the START state 31. In the START state a timer is started. This timer counts for the defined multiple (presently 3.5 times) of the selected CCM interval for the connection. If a valid CCM message is received within the timer's period, the state machine enters the OK state 32. The timer is re-loaded and the state machine again waits for the reception of a valid CCM daring the new period.
If a valid CCM is not received before the timer times out while the state machine is in either the START state or the OK state, the state machine enters the FAILED state 33 (hereinafter called the ‘third’ state) and raises an alarm. It remains in that state until receives a valid CCM is received.
Each of the management points A and B includes a counter 4 which when enabled loads a number N (which is adjustably selectable). The counter is decremented on each assertion of a valid received CCM (RxGoodCCM). Such a signal is necessary anyway to support the standard state machines and does not require any additional logic. If the counter counts N such signals, it provides an indication that N valid CCMs have been received.
In each instance the counter 4 is enabled by the respective management software. It receives CCMs from the link between the remote transmit state machine and the local receive state machine and it provides the indication ‘RxNGoodCCMs’ to the local receive state machine.
The operation of the counter 4 is indicated in the state machine of
In practice the management points A and B are separated by a network including devices such as switches and routers. At such a device it is necessary to perform a management point identification process.
The management point identification process performed by the search engine consists of 2 lookup stages 41, 42 and a MEP Configuration Table 43.
The first lookup stage 41 uses the VLAN or other associated with the CFM or PM packet to read a table entry. The entry contains a validity bit (VALID), a pointer field (POINTER1) and an ordered port identification field (PORT MASK) which has a sub-field corresponding to each port. Preferably each such sub-field is a one-bit field, i.e. the PORT MASK is a ‘port bit mask’. The VALID bit is used to validate the entry. If the VALID bit is clear, then the whole entry for the VLAN is invalid and the management point search fails. Each location in the PORT MASK represents a port on which a management point can exist. For example, if the network terminal has 24 ports, then the PORT MASK will have 24 bits, one for each possible port. If a management point exists on a port for the said VLAN, the corresponding bit in the PORT MASK is set. If no management point exists on a port for the said VLAN, the corresponding bit in the PORT MASK is clear. When the entry is read, if the bit in the PORT MASK corresponding to the port is clear, the management point identification process fails. If it is set, then the address of the second stage lookup is calculated and the second stage lookup proceeds.
The address for the second stage lookup address is generated by means of a progressive incremental offset from a datum in accordance with an ordered count of the ports on which management point s exist. More particularly the port location in the PORT MASK is examined and its relative position relative to all other ports on which management point s exist (i.e. the bits that are SET in the PORT MASK) is generated by the logic 44. This generates an offset which is added (reference 45) to the datum address defined by the pointer POINTER1 to generate the required address.
The entries in table 42, which is read using the address generated from the first stage, each comprise a pointer 46 (POINTER2) to the MEP configuration table 23, and two ordered fields 47 and 48, one for each ‘direction’, indicating the operational level associated with the relevant management point. In this preferred example each field (denoted DOWN MASK and UP MASK) is an 8 deep bit mask, so that a first bit indicates level 0, a second bit indicates level 1 and so on.
The logic 49 computes for each port and for each management point which exist on that port a offset in accordance with an ordered count of the management point s which have operational levels in that port. In particular this count is, for each management point, the number of management points which have a lesser operational level in that port. This number is added (reference 50) as an offset to the pointer 46 to obtain an address in the configuration table 43.
This process may be explained with reference to
In a first example, for VLAN 20 there are 3 ports containing MEPs—ports 10, 14 and 20. Port 10 has a Down MEP at level 3, a Down MEP at level 2 and a Down MEP at level 1. Port 14 has a Down MEP at level 7 and a Down MEP at level 5. Port 20 has a Down MEP at level 4 and an Up MEP at level 5.
If the port on which the CFM or PM packet with VLAN 20 was processed was port 10, then its relative position in the PORT MASK is position 0, the count of ports being in this example being made starting at the lowest port number. If the port was port 14, then its relative position in the PORT MASK is position 1, there being one lower numbered port on which an MEP exists. If the port was port 20, then its relative position in the PORT MASK is position 2, because (for this service identifier) there are two lower numbered ports (ports 10 and 14) on which MEPs exist. Thus the relative positions of the ports can be represented by a progression of incremental values (0, 1, 2) in an ordered count of the ports on which MEPs exist. These values are not the port numbers but a count of the relevant ports. Each relative position is then added to the POINTER1 value to generate the address of the second stage lookup. Note that the POINTER1 value points to the start of a list of entries in the second table. The POINTER1 for VLAN 20 in this example has a value of 100. This means the list of entries for VLAN 20 that is stored in the second table starts at location 100. The first entry at location 100 is for VLAN 20 and port 10; the second entry, offset by 1 from the datum (100) is at location 101 is for VLAN 20 and port 14 and the third entry at location 102 is for VLAN 20 and port 20.
In a second example, there are 3 ports that have MEPs on VLAN 40—ports 1, 3 and 4. Port 1 has a Down MEP at level 7 and a Down MEP at level 0. Port 3 has a Down MEP at level 3. Port 4 has a Down MEP at level 5.
The POINTER1 value for this VLAN is configured as location 103, which means the list of entries for VLAN 40 that is stored in the second table starts at location 103—immediately after the list for VLAN 20. Thus the address for VLAN40 & port1=103, the address for VLAN40 & port3=104 and the address for VLAN40 & port4=105.
As indicated above, the table 42 is read using the address generated from the first stage 42. Each entry contains (as shown in
In the first example noted above, there are 3 DOWN MEPs for VLAN 20 on port 10 and no UP MEPs. These DOWN MEPs are at operational levels 3, 2 and 1. If the received LEVEL was 1, then its relative position in the combined UP and DOWN BIT MASK is position 0. If the received LEVEL was 2, then its relative position is position 1. If the received LEVEL was 3, then its relative position is position 2. The relative position is then added to the POINTER2 value to generate the address of the MEP CONFIGURATION TABLE. The POINTER2 for port 10 and VLAN 20 in this example has a value of 1000. This means the list of MEP CONFIGURATION entries for port 10 and VLAN 20 starts at location 1000. The first entry at location 1000 is for port 10, VLAN 20, DOWN MEP and level 1; the second entry at location 1001 is for port 10, VLAN 20, DOWN MEP and level 2 and the third entry at location 1002 is for port 10, VLAN 20, DOWN MEP and level 3.
In the second example noted above, for VLAN 20 on port 14 there are two DOWN MEPs at operational levels 7 and 5. The POINTER2 value for this VLAN 20/PORT 14 may therefore be configured as location 1003, which means the list of MEP CONFIGURATION entries starts at location 1003, i.e. immediately after the list for VLAN 20/PORT 10.
The search time for the management point Identification process is limited to 2 table reads. The memory storage required is a 4K deep first stage table (assuming a typical VLAN ID of 12 bits) together with a second table whose size is the number of MEPs supported. So for example if 1000 MEPs were supported, the size of the second table is 1000 entries and the combined size is a 5K entry. An alternative lookup scheme could be to form an address of the port, vlan, direction and level and use it to do a single table read. The size of that table however would be very large but only sparsely populated. For example, VLAN is typically 12 bits, the level is 3 bits, the direction is one bit and for a 24 port system, the port number is 5 bits. Combining these into one address results in a 21 bit address and the corresponding table size would be 2M entries but only sparsely populated with 1000 entries. The scheme according to this invention only requires a combined table size of 5K entries and a maximum of 2 table reads. Furthermore, the search time is predictable and independent of the sizes of the tables.
This invention also includes a search process for the list of configured peer MEPS in order to verify the transmitter MEPID. This search is required particularly for the CCM subset of CFM packets. The MEP Configuration Table 43 contains a start address to a stored list 51 (startPeerMEPList) of all peer MEPs associated with this MEP. This is searched using a method illustrated in
An example of this peer MEPID validation method is shown in
The search time for the peer MEP validation process in this example is limited to a maximum of 3 table reads. The memory storage for the example in
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/EP10/02713 | 5/4/2010 | WO | 00 | 11/5/2012 |