| 110 | |
| 111 | |
| 112 | class BFD(Packet): |
| 113 | name = "BFD" |
| 114 | fields_desc = [ |
| 115 | BitField("version", 1, 3), |
| 116 | BitEnumField("diag", 0, 5, _diagnostics), |
| 117 | BitEnumField("sta", 3, 2, _sta_names), |
| 118 | FlagsField("flags", 0, 6, "MDACFP"), |
| 119 | ByteField("detect_mult", 3), |
| 120 | FieldLenField( |
| 121 | "len", |
| 122 | None, |
| 123 | fmt="B", |
| 124 | length_of="optional_auth", |
| 125 | adjust=lambda pkt, x: x + 24, |
| 126 | ), |
| 127 | BitField("my_discriminator", 0x11111111, 32), |
| 128 | BitField("your_discriminator", 0x22222222, 32), |
| 129 | BitField("min_tx_interval", 1000000000, 32), |
| 130 | BitField("min_rx_interval", 1000000000, 32), |
| 131 | BitField("echo_rx_interval", 1000000000, 32), |
| 132 | ConditionalField( |
| 133 | PacketField("optional_auth", None, OptionalAuth), |
| 134 | lambda pkt: pkt.flags.names[2] == "A", |
| 135 | ), |
| 136 | ] |
| 137 | |
| 138 | def mysummary(self): |
| 139 | return self.sprintf( |
| 140 | "BFD (my_disc=%BFD.my_discriminator%," |
| 141 | "your_disc=%BFD.your_discriminator%," |
| 142 | "state=%BFD.sta%)" |
| 143 | ) |
| 144 | |
| 145 | |
| 146 | for _bfd_port in [ |
nothing calls this directly
no test coverage detected