Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

RE: [RPRWG] D2.2 and new IPS Sequence # processing



Hi Jason:

 

If I follow your logic to completion, this would mean I have to cache *ALL* the IPS messages from *ALL* nodes and then when any event occurs (like WTR), I would have to reprocess all those messages. This is because some of the tests are based on packets from neighbors, and some are tests against non-neighbors (state 28 for example).

 

In addition to the points I made below about sequence #’s, there can be problems with startup. When a neighbor is instantiated, the sequence # is often 0 (structures are normally zero initialized). As such, the first neighbor message will probably have a zero sequence too. Wouldn’t this cause that message to be ignored?

 

As a side note…I defeated the sequence check, and the state machine seems to work much more reliably – I actually end up with totally idle nodes rather than stick WTR’s.

 

Regards,

 

Michael

 

-----Original Message-----
From: Jason Fan [mailto:Jason@xxxxxxxxxxxx]
Sent: Tuesday, April 22, 2003 10:02 AM
To: Michael Allen; stds-802-17@xxxxxxxx
Subject: RE: [RPRWG] D2.2 and new IPS Sequence # processing

 

Hi Michael,

 

The intent of line 36 is that if a TP frame is received from a neighbor that meets the conditions of line 36 prior to the WTR expiring, the relevant information in the TP frame will still be available for the purposes of the check when WTR expires. At that point the transition will occur into the IDLE state. The expiration of WTR is a trigger for doing state machine processing just as when a new TP frame is received.

 

-- Jason

-----Original Message-----
From: Michael Allen [mailto:michael_allen@xxxxxxxxxxxxxxx]
Sent: Monday, April 21, 2003 5:15 PM
To: stds-802-17@xxxxxxxx
Subject: [RPRWG] D2.2 and new IPS Sequence # processing

I have been implementing the D2.2 IPS state machine and run into what I believe is an issue with the new sequence # check. If I interpret the check correctly, it looks like the first packet received with a new sequence # is processed & then all future ones are suppressed (until the sequence # changes again).

 

It seems like this can cause a problem when attempting to unwrap a link (on a wrapping ring), since a WTR node would require state 36 to fire to get out of the WTR and the neighbor is the same as the original. The problem is when the packet defined in state 36 arrives, but the WTR timer has not expired. Once the packet has been processed, and the timer later expires, it is not possible to get into state 36.

 

Also, state 40 is the only state that formally copies neighbor addresses. Since the whole state machine banks on the neighbor MAC addresses being updated at the right time, this should be in the state tables.

 

It seems as though ALL ClearXxxSideEdgeStatus() operations should remove a wrap. That way, reception of IPS with STEER mode can switch the ring from wrapping to steered immediately, and any current wrap conditions will get removed. Only the wrap operation should be conditional on all nodes being able to wrap.

 

Comments are welcome,

 

Regards,

 

Michael Allen