Commit 15a0b50
RRC: pick the right leg for a multicast bearer's RX side
createIncomingConnection() chose between the LTE and NR leg with
bool isNr = (registration_->getNodeType()==UE && isNrUe(lteInfo->getDestId()));
//TODO FIXME! DOES NOT WORK FOR MULTICAST!!!!!
Both the flag and the MAC lookup below it asked the same question -- which of
this node's legs does the bearer belong to? -- and answered it with the
destination id. For a unicast bearer that is correct, because the destination is
this node. A multicast bearer has no single destination: getDestId() names the
sender's LTE id, so an NR multicast bearer was built on the *LTE* leg of every
receiver while the sender transmitted on its NR leg. The receiving NR MAC then
had no descriptor for the arriving PDU and asserted in macPduUnmake().
For multicast the sender's id selects the leg instead: the frame goes out on the
sender's leg and D2dUePhy::sendMulticast() hands it only to receivers whose
isNrUe() matches the transmitting PHY's isNr_, so the receiving leg is the one
matching the sender by construction. This also makes the function symmetric with
createOutgoingConnection(), which already uses getSourceId() -- there the sender
is this node -- and carries no such TODO.
The MAC lookup now reuses the computed flag instead of repeating the expression.
nr/cars D2DMulticast advances from t=5.13s to t=26.07s, the same point the LTE
variant now reaches, so both RATs behave identically again. Remaining there:
car[5], the first receiver of the *second* multicast group, still asserts even
though it is provisioned -- traced far enough to confirm joinMulticastGroup()
does find the stored flow and create its RX leg (node=1030/2054, group=32771,
flow known), so that is a CID or timing mismatch rather than missing
provisioning, and needs its own investigation.
Full fingerprint suite 182/182 PASS, CSVs unchanged.1 parent 5007fe7 commit 15a0b50
1 file changed
Lines changed: 11 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
344 | 344 | | |
345 | 345 | | |
346 | 346 | | |
347 | | - | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
348 | 357 | | |
349 | 358 | | |
350 | 359 | | |
| |||
361 | 370 | | |
362 | 371 | | |
363 | 372 | | |
364 | | - | |
| 373 | + | |
365 | 374 | | |
366 | 375 | | |
367 | 376 | | |
| |||
0 commit comments