| 458 | } |
| 459 | |
| 460 | void LlcFrameDump::textContent(std::ostream &os,bool verbose) |
| 461 | { |
| 462 | if (mFormat == LLCFormat::S || mFormat == LLCFormat::SSack) { |
| 463 | return; // There is no data field. |
| 464 | } |
| 465 | // What the data is depends on the SAPI; could be an L3Message or user data. |
| 466 | int pos = headerLength(); |
| 467 | switch (getSapi()) { |
| 468 | case LlcSapi::GPRSMM: { |
| 469 | // The contents are an L3 Message, prefixed by an LLC header |
| 470 | // and followed by the FCS checksum. |
| 471 | //ByteVector l3msg = segment(pos,size()-pos-3); |
| 472 | ByteVector payload = segment(pos,size()-pos-3); |
| 473 | os << " L3="<<L3GprsMsgType2Name(payload); |
| 474 | if (verbose) { |
| 475 | L3GprsFrame frame(payload); |
| 476 | frame.dump(os); |
| 477 | } |
| 478 | return; |
| 479 | } |
| 480 | case LlcSapi::UserData3: |
| 481 | case LlcSapi::UserData5: |
| 482 | case LlcSapi::UserData9: |
| 483 | case LlcSapi::UserData11: |
| 484 | // The contents are some user data. |
| 485 | os << " user PDU size=" << ((int)size() - pos); |
| 486 | break; |
| 487 | //SMS = 7 |
| 488 | //TOM2 = 2, |
| 489 | //TOM8 = 8, |
| 490 | default: |
| 491 | os << "unrecognized SAPI="<<getSapi(); |
| 492 | break; |
| 493 | } |
| 494 | } |
| 495 | void LlcFrameDump::text(std::ostream &os) |
| 496 | { |
| 497 | os << "LlcFrame:("; |
no test coverage detected