3GPP 24.007 11.2.3.1.3 Transaction Identifier. First bit is the TIflag that must be set for a message reply. And I quote: "A message has a TI flag set to "0" when it belongs to transaction initiated by its sender, and to "1" otherwise." Transaction id values > 7 requre an extension byte.
| 1260 | // and to "1" otherwise." |
| 1261 | // Transaction id values > 7 requre an extension byte. |
| 1262 | void L3SmDlMsg::appendTiPd(ByteVector &msg) |
| 1263 | { |
| 1264 | unsigned tiFlag = isSenseCmd() ? 0 : 0x8; |
| 1265 | // Note: nibbles are reversed, as always for L3 messages. |
| 1266 | if (mTransactionId < 7) { |
| 1267 | msg.appendField(tiFlag|mTransactionId,4); // Transaction id. The 0x8 indicates this is a command. |
| 1268 | msg.appendField(GSM::L3GPRSSessionManagementPD,4); // protocol discriminator. |
| 1269 | } else { |
| 1270 | msg.appendField(tiFlag|0x7,4); // Magic value indicates additional transaction id field present. |
| 1271 | msg.appendField(GSM::L3GPRSSessionManagementPD,4); // protocol discriminator. |
| 1272 | msg.appendByte(0x80|mTransactionId); // The 0x80 is a required but meaningless extension indicator. |
| 1273 | } |
| 1274 | } |
| 1275 | |
| 1276 | |
| 1277 | void L3SmMsgActivatePdpContextAccept::smWriteBody(ByteVector &msg) |
nothing calls this directly
no test coverage detected