| 606 | |
| 607 | |
| 608 | class rtmsg(Packet): |
| 609 | fields_desc = [ |
| 610 | ByteEnumField("rtm_family", 0, socket.AddressFamily), |
| 611 | ByteField("rtm_dst_len", 0), |
| 612 | ByteField("rtm_src_len", 0), |
| 613 | ByteField("rtm_tos", 0), |
| 614 | ByteEnumField( |
| 615 | "rtm_table", |
| 616 | 0, |
| 617 | RT_CLASS, |
| 618 | ), |
| 619 | ByteEnumField( |
| 620 | "rtm_protocol", |
| 621 | 0, |
| 622 | { |
| 623 | 0x00: "RTPROT_UNSPEC", |
| 624 | 0x01: "RTPROT_REDIRECT", |
| 625 | 0x02: "RTPROT_KERNEL", |
| 626 | 0x03: "RTPROT_BOOT", |
| 627 | 0x04: "RTPROT_STATIC", |
| 628 | }, |
| 629 | ), |
| 630 | ByteEnumField( |
| 631 | "rtm_scope", |
| 632 | 0, |
| 633 | { |
| 634 | 0: "RT_SCOPE_UNIVERSE", |
| 635 | 200: "RT_SCOPE_SITE", |
| 636 | 253: "RT_SCOPE_LINK", |
| 637 | 254: "RT_SCOPE_HOST", |
| 638 | 255: "RT_SCOPE_NOWHERE", |
| 639 | }, |
| 640 | ), |
| 641 | ByteEnumField( |
| 642 | "rtm_type", |
| 643 | 0, |
| 644 | { |
| 645 | 0x00: "RTN_UNSPEC", |
| 646 | 0x01: "RTN_UNICAST", |
| 647 | 0x02: "RTN_LOCAL", |
| 648 | 0x03: "RTN_BROADCAST", |
| 649 | 0x04: "RTN_ANYCAST", |
| 650 | 0x05: "RTN_MULTICAST", |
| 651 | 0x06: "RTN_BLACKHOLE", |
| 652 | 0x07: "RTN_UNREACHABLE", |
| 653 | 0x08: "RTN_PROHIBIT", |
| 654 | 0x09: "RTN_THROW", |
| 655 | 0x0A: "RTN_NAT", |
| 656 | 0x0B: "RTN_XRESOLVE", |
| 657 | }, |
| 658 | ), |
| 659 | FlagsField( |
| 660 | "rtm_flags", |
| 661 | 0, |
| 662 | 32 if BIG_ENDIAN else -32, |
| 663 | { |
| 664 | 0x100: "RTM_F_NOTIFY", |
| 665 | 0x200: "RTM_F_CLONED", |
no test coverage detected