...
Primary Requirement ID | Secondary Requirement ID | Unit Test ID | Unit Test Description | Behavior of Note | ||
---|---|---|---|---|---|---|
snd-005 | UT-0220 |
| ||||
snd-010 | snd-015 | UT-0225 |
| |||
snd-020 | UT-0230 |
| ||||
snd-020 | UT-0235 |
| ||||
snd-030 | UT-0240 |
| ||||
snd-030 | UT-0245 |
| ||||
snd-035 | UT-0250 |
| ||||
snd-040 | UT-0255 |
| ||||
snd-045 | snd-070 | UT-0260 |
| |||
snd-050 | UT-0265 |
| ||||
snd-050 | UT-0270 |
| ||||
snd-050 | snd-060, snd-075 | UT-0275 |
| When a peer NID is removed then added or if a new peer NID is added, then it's peer_ni->lpni_seq number will start off at 0. In the case of credits being == then the newly added peer will always be picked until it's lpni_seq number catches up with the other peer NIs sequence numbers. See code below.
This behavior will manifest itself in low bandwidth environment. In high bandwidth environment it is likely that the credits in the selection algorithm will be different and the peer_NI will be picked according to credits. Another scenario to consider is when the lpni_seq number wraps. In low bandwidth environment this could cause the peer NI which wrapped to be picked until it catches up with the other peer NIs sequence numbers. This in itself might not be significant enough, but does raise the question of the benefit of having a seq number to start with. Does it give much of a functional advantage, or having the credits criteria enough. The same issue is present with local NI sequence numbers. | ||
snd-055 | snd-060, snd-075 | UT-0280 |
| |||
snd-055 | snd-060, snd-075, snd-085 | UT-0285 |
| |||
snd-055 | snd-060, snd-075, snd-085 | UT-0290 |
| |||
snd-055 | snd-060, snd-075 | UT-0295 |
| |||
snd-080 | UT-0300 |
| ||||
snd-080 | UT-0305 |
| ||||
UT-0310 |
| |||||
UT-0315 |
| |||||
UT-0320 |
|
Dynamic NID Discovery
The unit tests for peer NID discovery depend on lctl ping
not triggering discovery. To force discovery, use lctl discover
. Note that some of the tests require DLC configuration to include non-existing peer NIDs. These nids are marked with a *.
Primary Requirement ID | Secondary Requirement ID | Unit Test ID | Unit Test Description |
---|---|---|---|
Basic functionality 1-1: discovery of an MR peer via its primary.
| |||
Basic functionality 1-2: discovery of an MR peer via a secondary.
| |||
Basic functionality 1-3: discovery of an MR peer via a tertiary.
| |||
Compatibility 2-1: discovery of a non-MR peer via its primary.
| |||
Compatibility 2-2: discovery of a non-MR peer via a secondary.
| |||
Compatibility 2-3: discovery of a non-MR peer via a tertiary.
| |||
Interaction with DLC 3-1: DLC overrides Discovery of MR peer
| |||
Interaction with DLC 3-2: DLC overrides Discovery of non-MR peer
| |||
Interaction with DLC 3-3: DLC overrides Discovery of MR peer with primary conflict
| |||
Interaction with DLC 3-4: DLC overrides Discovery of non-MR peer with primary conflict
| |||
Interaction with DLC 3-5: "push MR bit" exception to DLC overrides Discovery
| |||
Interaction with DLC 3-6: "push MR bit" exception to DLC overrides Discovery
|
Debugging Requirements
Primary Requirement ID | Secondary Requirement ID | Unit Test ID | Unit Test Description |
---|---|---|---|
dbg-005 | dbg-010, dbg-015, dbg-020, dbg-025, dbg-030, dbg-035, dbg-080 | UT-0325 |
|
dbg-040 | dbg-080, dbg-095 | UT-0330 |
|
dbg-040 | dbg-080 | UT-0335 |
|
dbg-045 | dbg-080 | UT-0340 |
|
dbg-050 | dbg-080, dbg-100 | UT-0345 |
|
dbg-110 | UT-0350 |
| |
dbg-115 | UT-0355 |
| |
dbg-120 | UT-0360 |
|
...