| + BFD |
| |
| = BFD, basic instantiation |
| |
| from scapy.contrib.bfd import * |
| a = UDP(sport=3784, dport=3784)/BFD() |
| assert raw(a) == b'\x0e\xc8\x0e\xc8\x00 \x00\x00 \xc0\x03\x18\x11\x11\x11\x11"""";\x9a\xca\x00;\x9a\xca\x00;\x9a\xca\x00' |
| |
| = BFD - dissection |
| |
| assert BFD in UDP(raw(a)) |
| |
| = BFD with OptionalAuth [Simple Password Auth] [dissection] |
| p = UDP(b'\x04\x00\x0e\xc8\x00\x29\x72\x31\x20\x44\x05\x21\x00\x00\x00\x01\x00\x00\x00\x00\x00\x0f\x42\x40\x00\x0f\x42\x40\x00\x00\x00\x00\x01\x09\x02\x73\x65\x63\x72\x65\x74\x4e\x0a\x90\x40') |
| assert(isinstance(p[1], BFD)) |
| assert(p[1].len == 33) |
| assert(isinstance(p[2], OptionalAuth)) |
| assert(p[2].auth_type == 1) |
| assert(p[2].auth_len == 9) |
| |
| = BFD with OptionalAuth [Keyed MD5 Auth] [dissection] |
| p = UDP(b'\x04\x00\x0e\xc8\x00\x38\x6a\xcc\x20\x44\x05\x30\x00\x00\x00\x01\x00\x00\x00\x00\x00\x0f\x42\x40\x00\x0f\x42\x40\x00\x00\x00\x00\x02\x18\x02\x00\x00\x00\x00\x05\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16\x3c\xc3\xf8\x21') |
| assert(isinstance(p[1], BFD)) |
| assert(p[1].len == 48) |
| assert(isinstance(p[2], OptionalAuth)) |
| assert(p[2].auth_type ==2) |
| assert(p[2].auth_len == 24) |
| |
| = BFD with OptionalAuth [Meticulous Keyed SHA1 Auth] [dissection] |
| p = UDP(b'\x04\x00\x0e\xc8\x00\x3c\x37\x8a\x20\x44\x05\x34\x00\x00\x00\x01\x00\x00\x00\x00\x00\x0f\x42\x40\x00\x0f\x42\x40\x00\x00\x00\x00\x05\x1c\x02\x00\x00\x00\x00\x05\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\xea\x6d\x1f\x21') |
| assert(isinstance(p[1], BFD)) |
| assert(p[1].len == 52) |
| assert(isinstance(p[2], OptionalAuth)) |
| assert(p[2].auth_type ==5) |
| assert(p[2].auth_len == 28) |
| |
| = BFD with OptionalAuth [Simple Password Auth] [Build] |
| p = UDP(sport=3784, dport=3784)/BFD(flags="A", optional_auth=OptionalAuth(auth_type=1)) |
| assert raw(p) == b'\x0e\xc8\x0e\xc8\x00+\x00\x00 \xc4\x03#\x11\x11\x11\x11"""";\x9a\xca\x00;\x9a\xca\x00;\x9a\xca\x00\x01\x0b\x01password' |
| |
| = BFD with OptionalAuth [Keyed MD5 Auth] [Build] |
| p = UDP(sport=3784, dport=3784)/BFD(flags="A", optional_auth=OptionalAuth(auth_type=2)) |
| assert raw(p) == b'\x0e\xc8\x0e\xc8\x008\x00\x00 \xc4\x030\x11\x11\x11\x11"""";\x9a\xca\x00;\x9a\xca\x00;\x9a\xca\x00\x02\x18\x01\x00\x00\x00\x00\x00_M\xcc;Z\xa7e\xd6\x1d\x83\'\xde\xb8\x82\xcf\x99' |
| |
| = BFD with OptionalAuth [Meticulous Keyed SHA1 Auth] [Build] |
| p = UDP(sport=3784, dport=3784)/BFD(flags="A", optional_auth=OptionalAuth(auth_type=5)) |
| assert raw(p) == b'\x0e\xc8\x0e\xc8\x00<\x00\x00 \xc4\x034\x11\x11\x11\x11"""";\x9a\xca\x00;\x9a\xca\x00;\x9a\xca\x00\x05\x1c\x01\x00\x00\x00\x00\x00[\xaaa\xe4\xc9\xb9??\x06\x82%\x0bl\xf83\x1b~\xe6\x8f\xd8' |