pypcapkit 1.3.3.post1__cp313-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (466) hide show
  1. pcapkit/__init__.py +126 -0
  2. pcapkit/__main__.py +138 -0
  3. pcapkit/all.py +136 -0
  4. pcapkit/const/__init__.py +81 -0
  5. pcapkit/const/arp/__init__.py +25 -0
  6. pcapkit/const/arp/hardware.py +181 -0
  7. pcapkit/const/arp/operation.py +131 -0
  8. pcapkit/const/ftp/__init__.py +25 -0
  9. pcapkit/const/ftp/command.py +309 -0
  10. pcapkit/const/ftp/return_code.py +304 -0
  11. pcapkit/const/hip/__init__.py +94 -0
  12. pcapkit/const/hip/certificate.py +77 -0
  13. pcapkit/const/hip/cipher.py +65 -0
  14. pcapkit/const/hip/di.py +59 -0
  15. pcapkit/const/hip/ecdsa_curve.py +59 -0
  16. pcapkit/const/hip/ecdsa_low_curve.py +56 -0
  17. pcapkit/const/hip/eddsa_curve.py +65 -0
  18. pcapkit/const/hip/esp_transform_suite.py +98 -0
  19. pcapkit/const/hip/group.py +86 -0
  20. pcapkit/const/hip/hi_algorithm.py +86 -0
  21. pcapkit/const/hip/hit_suite.py +68 -0
  22. pcapkit/const/hip/nat_traversal.py +62 -0
  23. pcapkit/const/hip/notify_message.py +200 -0
  24. pcapkit/const/hip/packet.py +89 -0
  25. pcapkit/const/hip/parameter.py +377 -0
  26. pcapkit/const/hip/registration.py +68 -0
  27. pcapkit/const/hip/registration_failure.py +84 -0
  28. pcapkit/const/hip/suite.py +71 -0
  29. pcapkit/const/hip/transport.py +59 -0
  30. pcapkit/const/http/__init__.py +39 -0
  31. pcapkit/const/http/error_code.py +95 -0
  32. pcapkit/const/http/frame.py +95 -0
  33. pcapkit/const/http/method.py +184 -0
  34. pcapkit/const/http/setting.py +96 -0
  35. pcapkit/const/http/status_code.py +294 -0
  36. pcapkit/const/ipv4/__init__.py +57 -0
  37. pcapkit/const/ipv4/classification_level.py +64 -0
  38. pcapkit/const/ipv4/option_class.py +55 -0
  39. pcapkit/const/ipv4/option_number.py +137 -0
  40. pcapkit/const/ipv4/protection_authority.py +63 -0
  41. pcapkit/const/ipv4/qs_function.py +51 -0
  42. pcapkit/const/ipv4/router_alert.py +251 -0
  43. pcapkit/const/ipv4/tos_del.py +51 -0
  44. pcapkit/const/ipv4/tos_ecn.py +55 -0
  45. pcapkit/const/ipv4/tos_pre.py +63 -0
  46. pcapkit/const/ipv4/tos_rel.py +51 -0
  47. pcapkit/const/ipv4/tos_thr.py +51 -0
  48. pcapkit/const/ipv4/ts_flag.py +53 -0
  49. pcapkit/const/ipv6/__init__.py +53 -0
  50. pcapkit/const/ipv6/extension_header.py +66 -0
  51. pcapkit/const/ipv6/option.py +137 -0
  52. pcapkit/const/ipv6/option_action.py +55 -0
  53. pcapkit/const/ipv6/qs_function.py +51 -0
  54. pcapkit/const/ipv6/router_alert.py +266 -0
  55. pcapkit/const/ipv6/routing.py +80 -0
  56. pcapkit/const/ipv6/seed_id.py +55 -0
  57. pcapkit/const/ipv6/smf_dpd_mode.py +51 -0
  58. pcapkit/const/ipv6/tagger_id.py +62 -0
  59. pcapkit/const/ipx/__init__.py +27 -0
  60. pcapkit/const/ipx/packet.py +72 -0
  61. pcapkit/const/ipx/socket.py +104 -0
  62. pcapkit/const/l2tp/__init__.py +21 -0
  63. pcapkit/const/l2tp/type.py +51 -0
  64. pcapkit/const/mh/__init__.py +204 -0
  65. pcapkit/const/mh/access_type.py +92 -0
  66. pcapkit/const/mh/ack_status_code.py +71 -0
  67. pcapkit/const/mh/ani_suboption.py +74 -0
  68. pcapkit/const/mh/auth_subtype.py +53 -0
  69. pcapkit/const/mh/binding_ack_flag.py +66 -0
  70. pcapkit/const/mh/binding_error.py +51 -0
  71. pcapkit/const/mh/binding_revocation.py +59 -0
  72. pcapkit/const/mh/binding_update_flag.py +81 -0
  73. pcapkit/const/mh/cga_extension.py +66 -0
  74. pcapkit/const/mh/cga_sec.py +57 -0
  75. pcapkit/const/mh/cga_type.py +68 -0
  76. pcapkit/const/mh/dhcp_support_mode.py +53 -0
  77. pcapkit/const/mh/dns_status_code.py +65 -0
  78. pcapkit/const/mh/dsmip6_tls_packet.py +62 -0
  79. pcapkit/const/mh/dsmipv6_home_address.py +74 -0
  80. pcapkit/const/mh/enumerating_algorithm.py +56 -0
  81. pcapkit/const/mh/fb_ack_status.py +62 -0
  82. pcapkit/const/mh/fb_action.py +71 -0
  83. pcapkit/const/mh/fb_indication_trigger.py +65 -0
  84. pcapkit/const/mh/fb_type.py +59 -0
  85. pcapkit/const/mh/flow_id_status.py +77 -0
  86. pcapkit/const/mh/flow_id_suboption.py +71 -0
  87. pcapkit/const/mh/handoff_type.py +71 -0
  88. pcapkit/const/mh/handover_ack_flag.py +54 -0
  89. pcapkit/const/mh/handover_ack_status.py +92 -0
  90. pcapkit/const/mh/handover_initiate_flag.py +57 -0
  91. pcapkit/const/mh/handover_initiate_status.py +62 -0
  92. pcapkit/const/mh/home_address_reply.py +71 -0
  93. pcapkit/const/mh/lla_code.py +63 -0
  94. pcapkit/const/mh/lma_mag_suboption.py +59 -0
  95. pcapkit/const/mh/mn_group_id.py +59 -0
  96. pcapkit/const/mh/mn_id_subtype.py +77 -0
  97. pcapkit/const/mh/operator_id.py +63 -0
  98. pcapkit/const/mh/option.py +260 -0
  99. pcapkit/const/mh/packet.py +119 -0
  100. pcapkit/const/mh/qos_attribute.py +89 -0
  101. pcapkit/const/mh/revocation_status_code.py +83 -0
  102. pcapkit/const/mh/revocation_trigger.py +86 -0
  103. pcapkit/const/mh/status_code.py +232 -0
  104. pcapkit/const/mh/traffic_selector.py +62 -0
  105. pcapkit/const/mh/upa_status.py +71 -0
  106. pcapkit/const/mh/upn_reason.py +80 -0
  107. pcapkit/const/ospf/__init__.py +27 -0
  108. pcapkit/const/ospf/authentication.py +65 -0
  109. pcapkit/const/ospf/packet.py +71 -0
  110. pcapkit/const/pcapng/__init__.py +51 -0
  111. pcapkit/const/pcapng/block_type.py +152 -0
  112. pcapkit/const/pcapng/filter_type.py +48 -0
  113. pcapkit/const/pcapng/hash_algorithm.py +59 -0
  114. pcapkit/const/pcapng/option_type.py +233 -0
  115. pcapkit/const/pcapng/record_type.py +57 -0
  116. pcapkit/const/pcapng/secrets_type.py +56 -0
  117. pcapkit/const/pcapng/verdict_type.py +53 -0
  118. pcapkit/const/reg/__init__.py +34 -0
  119. pcapkit/const/reg/apptype.py +32702 -0
  120. pcapkit/const/reg/ethertype.py +714 -0
  121. pcapkit/const/reg/linktype.py +902 -0
  122. pcapkit/const/reg/transtype.py +523 -0
  123. pcapkit/const/tcp/__init__.py +35 -0
  124. pcapkit/const/tcp/checksum.py +55 -0
  125. pcapkit/const/tcp/flags.py +73 -0
  126. pcapkit/const/tcp/mp_tcp_option.py +80 -0
  127. pcapkit/const/tcp/option.py +198 -0
  128. pcapkit/const/vlan/__init__.py +23 -0
  129. pcapkit/const/vlan/priority_level.py +71 -0
  130. pcapkit/corekit/__init__.py +59 -0
  131. pcapkit/corekit/fields/__init__.py +45 -0
  132. pcapkit/corekit/fields/collections.py +282 -0
  133. pcapkit/corekit/fields/field.py +269 -0
  134. pcapkit/corekit/fields/ipaddress.py +274 -0
  135. pcapkit/corekit/fields/misc.py +722 -0
  136. pcapkit/corekit/fields/numbers.py +375 -0
  137. pcapkit/corekit/fields/strings.py +245 -0
  138. pcapkit/corekit/infoclass.py +394 -0
  139. pcapkit/corekit/io.py +506 -0
  140. pcapkit/corekit/module.py +39 -0
  141. pcapkit/corekit/multidict.py +626 -0
  142. pcapkit/corekit/protochain.py +263 -0
  143. pcapkit/corekit/version.py +33 -0
  144. pcapkit/dumpkit/__init__.py +15 -0
  145. pcapkit/dumpkit/common.py +199 -0
  146. pcapkit/dumpkit/null.py +77 -0
  147. pcapkit/dumpkit/pcap.py +144 -0
  148. pcapkit/foundation/__init__.py +45 -0
  149. pcapkit/foundation/engines/__init__.py +36 -0
  150. pcapkit/foundation/engines/dpkt.py +230 -0
  151. pcapkit/foundation/engines/engine.py +194 -0
  152. pcapkit/foundation/engines/pcap.py +188 -0
  153. pcapkit/foundation/engines/pcapng.py +310 -0
  154. pcapkit/foundation/engines/pyshark.py +166 -0
  155. pcapkit/foundation/engines/scapy.py +161 -0
  156. pcapkit/foundation/extraction.py +915 -0
  157. pcapkit/foundation/reassembly/__init__.py +49 -0
  158. pcapkit/foundation/reassembly/data/__init__.py +48 -0
  159. pcapkit/foundation/reassembly/data/ip.py +117 -0
  160. pcapkit/foundation/reassembly/data/tcp.py +145 -0
  161. pcapkit/foundation/reassembly/ip.py +192 -0
  162. pcapkit/foundation/reassembly/ipv4.py +50 -0
  163. pcapkit/foundation/reassembly/ipv6.py +50 -0
  164. pcapkit/foundation/reassembly/reassembly.py +389 -0
  165. pcapkit/foundation/reassembly/tcp.py +249 -0
  166. pcapkit/foundation/registry/__init__.py +41 -0
  167. pcapkit/foundation/registry/foundation.py +327 -0
  168. pcapkit/foundation/registry/protocols.py +885 -0
  169. pcapkit/foundation/traceflow/__init__.py +44 -0
  170. pcapkit/foundation/traceflow/data/__init__.py +30 -0
  171. pcapkit/foundation/traceflow/data/tcp.py +105 -0
  172. pcapkit/foundation/traceflow/tcp.py +159 -0
  173. pcapkit/foundation/traceflow/traceflow.py +390 -0
  174. pcapkit/interface/__init__.py +22 -0
  175. pcapkit/interface/core.py +185 -0
  176. pcapkit/interface/misc.py +120 -0
  177. pcapkit/protocols/__init__.py +85 -0
  178. pcapkit/protocols/application/NotImplemented/bgp.py +0 -0
  179. pcapkit/protocols/application/NotImplemented/dhcp.py +0 -0
  180. pcapkit/protocols/application/NotImplemented/dhcpv6.py +0 -0
  181. pcapkit/protocols/application/NotImplemented/dns.py +0 -0
  182. pcapkit/protocols/application/NotImplemented/imap.py +0 -0
  183. pcapkit/protocols/application/NotImplemented/ldap.py +0 -0
  184. pcapkit/protocols/application/NotImplemented/mqtt.py +0 -0
  185. pcapkit/protocols/application/NotImplemented/nntp.py +0 -0
  186. pcapkit/protocols/application/NotImplemented/ntp.py +0 -0
  187. pcapkit/protocols/application/NotImplemented/onc_rpc.py +0 -0
  188. pcapkit/protocols/application/NotImplemented/pop.py +0 -0
  189. pcapkit/protocols/application/NotImplemented/rip.py +0 -0
  190. pcapkit/protocols/application/NotImplemented/rtp.py +0 -0
  191. pcapkit/protocols/application/NotImplemented/sip.py +0 -0
  192. pcapkit/protocols/application/NotImplemented/smtp.py +0 -0
  193. pcapkit/protocols/application/NotImplemented/snmp.py +0 -0
  194. pcapkit/protocols/application/NotImplemented/ssh.py +0 -0
  195. pcapkit/protocols/application/NotImplemented/telnet.py +0 -0
  196. pcapkit/protocols/application/NotImplemented/tls.py +0 -0
  197. pcapkit/protocols/application/NotImplemented/xmpp.py +0 -0
  198. pcapkit/protocols/application/__init__.py +34 -0
  199. pcapkit/protocols/application/application.py +114 -0
  200. pcapkit/protocols/application/ftp.py +206 -0
  201. pcapkit/protocols/application/http.py +176 -0
  202. pcapkit/protocols/application/httpv1.py +320 -0
  203. pcapkit/protocols/application/httpv2.py +1255 -0
  204. pcapkit/protocols/data/__init__.py +192 -0
  205. pcapkit/protocols/data/application/__init__.py +57 -0
  206. pcapkit/protocols/data/application/ftp.py +59 -0
  207. pcapkit/protocols/data/application/httpv1.py +79 -0
  208. pcapkit/protocols/data/application/httpv2.py +293 -0
  209. pcapkit/protocols/data/data.py +25 -0
  210. pcapkit/protocols/data/internet/__init__.py +298 -0
  211. pcapkit/protocols/data/internet/ah.py +31 -0
  212. pcapkit/protocols/data/internet/hip.py +804 -0
  213. pcapkit/protocols/data/internet/hopopt.py +351 -0
  214. pcapkit/protocols/data/internet/ipv4.py +369 -0
  215. pcapkit/protocols/data/internet/ipv6.py +67 -0
  216. pcapkit/protocols/data/internet/ipv6_frag.py +29 -0
  217. pcapkit/protocols/data/internet/ipv6_opts.py +368 -0
  218. pcapkit/protocols/data/internet/ipv6_route.py +86 -0
  219. pcapkit/protocols/data/internet/ipx.py +56 -0
  220. pcapkit/protocols/data/internet/mh.py +509 -0
  221. pcapkit/protocols/data/link/__init__.py +33 -0
  222. pcapkit/protocols/data/link/arp.py +74 -0
  223. pcapkit/protocols/data/link/ethernet.py +28 -0
  224. pcapkit/protocols/data/link/l2tp.py +63 -0
  225. pcapkit/protocols/data/link/ospf.py +58 -0
  226. pcapkit/protocols/data/link/vlan.py +42 -0
  227. pcapkit/protocols/data/misc/__init__.py +109 -0
  228. pcapkit/protocols/data/misc/null.py +18 -0
  229. pcapkit/protocols/data/misc/pcap/__init__.py +18 -0
  230. pcapkit/protocols/data/misc/pcap/frame.py +56 -0
  231. pcapkit/protocols/data/misc/pcap/header.py +53 -0
  232. pcapkit/protocols/data/misc/pcapng.py +925 -0
  233. pcapkit/protocols/data/misc/raw.py +25 -0
  234. pcapkit/protocols/data/protocol.py +32 -0
  235. pcapkit/protocols/data/transport/__init__.py +71 -0
  236. pcapkit/protocols/data/transport/tcp.py +555 -0
  237. pcapkit/protocols/data/transport/udp.py +29 -0
  238. pcapkit/protocols/internet/NotImplemented/ecn.py +0 -0
  239. pcapkit/protocols/internet/NotImplemented/esp.py +97 -0
  240. pcapkit/protocols/internet/NotImplemented/icmp.py +0 -0
  241. pcapkit/protocols/internet/NotImplemented/icmpv6.py +0 -0
  242. pcapkit/protocols/internet/NotImplemented/igmp.py +0 -0
  243. pcapkit/protocols/internet/NotImplemented/shim6.py +0 -0
  244. pcapkit/protocols/internet/__init__.py +43 -0
  245. pcapkit/protocols/internet/ah.py +275 -0
  246. pcapkit/protocols/internet/hip.py +4727 -0
  247. pcapkit/protocols/internet/hopopt.py +1879 -0
  248. pcapkit/protocols/internet/internet.py +240 -0
  249. pcapkit/protocols/internet/ip.py +51 -0
  250. pcapkit/protocols/internet/ipsec.py +50 -0
  251. pcapkit/protocols/internet/ipv4.py +1782 -0
  252. pcapkit/protocols/internet/ipv6.py +361 -0
  253. pcapkit/protocols/internet/ipv6_frag.py +258 -0
  254. pcapkit/protocols/internet/ipv6_opts.py +1890 -0
  255. pcapkit/protocols/internet/ipv6_route.py +710 -0
  256. pcapkit/protocols/internet/ipx.py +230 -0
  257. pcapkit/protocols/internet/mh.py +2764 -0
  258. pcapkit/protocols/link/NotImplemented/dsl.py +0 -0
  259. pcapkit/protocols/link/NotImplemented/eapol.py +1 -0
  260. pcapkit/protocols/link/NotImplemented/fddi.py +0 -0
  261. pcapkit/protocols/link/NotImplemented/isdn.py +0 -0
  262. pcapkit/protocols/link/NotImplemented/ndp.py +0 -0
  263. pcapkit/protocols/link/NotImplemented/ppp.py +0 -0
  264. pcapkit/protocols/link/__init__.py +35 -0
  265. pcapkit/protocols/link/arp.py +421 -0
  266. pcapkit/protocols/link/ethernet.py +248 -0
  267. pcapkit/protocols/link/l2tp.py +267 -0
  268. pcapkit/protocols/link/link.py +140 -0
  269. pcapkit/protocols/link/ospf.py +342 -0
  270. pcapkit/protocols/link/rarp.py +82 -0
  271. pcapkit/protocols/link/vlan.py +225 -0
  272. pcapkit/protocols/misc/__init__.py +37 -0
  273. pcapkit/protocols/misc/null.py +129 -0
  274. pcapkit/protocols/misc/pcap/__init__.py +17 -0
  275. pcapkit/protocols/misc/pcap/frame.py +478 -0
  276. pcapkit/protocols/misc/pcap/header.py +358 -0
  277. pcapkit/protocols/misc/pcapng.py +5520 -0
  278. pcapkit/protocols/misc/raw.py +180 -0
  279. pcapkit/protocols/protocol.py +1216 -0
  280. pcapkit/protocols/schema/__init__.py +140 -0
  281. pcapkit/protocols/schema/application/__init__.py +40 -0
  282. pcapkit/protocols/schema/application/ftp.py +21 -0
  283. pcapkit/protocols/schema/application/httpv1.py +21 -0
  284. pcapkit/protocols/schema/application/httpv2.py +384 -0
  285. pcapkit/protocols/schema/internet/__init__.py +294 -0
  286. pcapkit/protocols/schema/internet/ah.py +40 -0
  287. pcapkit/protocols/schema/internet/hip.py +1184 -0
  288. pcapkit/protocols/schema/internet/hopopt.py +679 -0
  289. pcapkit/protocols/schema/internet/ipv4.py +576 -0
  290. pcapkit/protocols/schema/internet/ipv6.py +63 -0
  291. pcapkit/protocols/schema/internet/ipv6_frag.py +48 -0
  292. pcapkit/protocols/schema/internet/ipv6_opts.py +680 -0
  293. pcapkit/protocols/schema/internet/ipv6_route.py +198 -0
  294. pcapkit/protocols/schema/internet/ipx.py +40 -0
  295. pcapkit/protocols/schema/internet/mh.py +718 -0
  296. pcapkit/protocols/schema/link/__init__.py +19 -0
  297. pcapkit/protocols/schema/link/arp.py +39 -0
  298. pcapkit/protocols/schema/link/ethernet.py +51 -0
  299. pcapkit/protocols/schema/link/l2tp.py +88 -0
  300. pcapkit/protocols/schema/link/ospf.py +90 -0
  301. pcapkit/protocols/schema/link/vlan.py +69 -0
  302. pcapkit/protocols/schema/misc/__init__.py +108 -0
  303. pcapkit/protocols/schema/misc/null.py +18 -0
  304. pcapkit/protocols/schema/misc/pcap/__init__.py +10 -0
  305. pcapkit/protocols/schema/misc/pcap/frame.py +51 -0
  306. pcapkit/protocols/schema/misc/pcap/header.py +63 -0
  307. pcapkit/protocols/schema/misc/pcapng.py +1689 -0
  308. pcapkit/protocols/schema/misc/raw.py +24 -0
  309. pcapkit/protocols/schema/schema.py +809 -0
  310. pcapkit/protocols/schema/transport/__init__.py +69 -0
  311. pcapkit/protocols/schema/transport/tcp.py +928 -0
  312. pcapkit/protocols/schema/transport/udp.py +90 -0
  313. pcapkit/protocols/transport/NotImplemented/dccp.py +0 -0
  314. pcapkit/protocols/transport/NotImplemented/rsvp.py +0 -0
  315. pcapkit/protocols/transport/NotImplemented/sctp.py +0 -0
  316. pcapkit/protocols/transport/__init__.py +27 -0
  317. pcapkit/protocols/transport/tcp.py +3025 -0
  318. pcapkit/protocols/transport/transport.py +158 -0
  319. pcapkit/protocols/transport/udp.py +214 -0
  320. pcapkit/py.typed +0 -0
  321. pcapkit/toolkit/__init__.py +57 -0
  322. pcapkit/toolkit/dpkt.py +306 -0
  323. pcapkit/toolkit/pcap.py +212 -0
  324. pcapkit/toolkit/pcapng.py +251 -0
  325. pcapkit/toolkit/pyshark.py +99 -0
  326. pcapkit/toolkit/scapy.py +297 -0
  327. pcapkit/utilities/__init__.py +20 -0
  328. pcapkit/utilities/compat.py +196 -0
  329. pcapkit/utilities/decorators.py +192 -0
  330. pcapkit/utilities/exceptions.py +365 -0
  331. pcapkit/utilities/logging.py +55 -0
  332. pcapkit/utilities/warnings.py +185 -0
  333. pcapkit/vendor/__init__.py +105 -0
  334. pcapkit/vendor/__main__.py +92 -0
  335. pcapkit/vendor/arp/__init__.py +27 -0
  336. pcapkit/vendor/arp/hardware.py +29 -0
  337. pcapkit/vendor/arp/operation.py +29 -0
  338. pcapkit/vendor/default.py +474 -0
  339. pcapkit/vendor/ftp/__init__.py +27 -0
  340. pcapkit/vendor/ftp/command.py +244 -0
  341. pcapkit/vendor/ftp/return_code.py +256 -0
  342. pcapkit/vendor/hip/__init__.py +94 -0
  343. pcapkit/vendor/hip/certificate.py +29 -0
  344. pcapkit/vendor/hip/cipher.py +29 -0
  345. pcapkit/vendor/hip/di.py +29 -0
  346. pcapkit/vendor/hip/ecdsa_curve.py +29 -0
  347. pcapkit/vendor/hip/ecdsa_low_curve.py +29 -0
  348. pcapkit/vendor/hip/eddsa_curve.py +85 -0
  349. pcapkit/vendor/hip/esp_transform_suite.py +29 -0
  350. pcapkit/vendor/hip/group.py +87 -0
  351. pcapkit/vendor/hip/hi_algorithm.py +29 -0
  352. pcapkit/vendor/hip/hit_suite.py +29 -0
  353. pcapkit/vendor/hip/nat_traversal.py +29 -0
  354. pcapkit/vendor/hip/notify_message.py +29 -0
  355. pcapkit/vendor/hip/packet.py +88 -0
  356. pcapkit/vendor/hip/parameter.py +88 -0
  357. pcapkit/vendor/hip/registration.py +29 -0
  358. pcapkit/vendor/hip/registration_failure.py +29 -0
  359. pcapkit/vendor/hip/suite.py +29 -0
  360. pcapkit/vendor/hip/transport.py +29 -0
  361. pcapkit/vendor/http/__init__.py +39 -0
  362. pcapkit/vendor/http/error_code.py +95 -0
  363. pcapkit/vendor/http/frame.py +91 -0
  364. pcapkit/vendor/http/method.py +167 -0
  365. pcapkit/vendor/http/setting.py +93 -0
  366. pcapkit/vendor/http/status_code.py +185 -0
  367. pcapkit/vendor/ipv4/__init__.py +57 -0
  368. pcapkit/vendor/ipv4/classification_level.py +91 -0
  369. pcapkit/vendor/ipv4/option_class.py +80 -0
  370. pcapkit/vendor/ipv4/option_number.py +105 -0
  371. pcapkit/vendor/ipv4/protection_authority.py +84 -0
  372. pcapkit/vendor/ipv4/qs_function.py +78 -0
  373. pcapkit/vendor/ipv4/router_alert.py +93 -0
  374. pcapkit/vendor/ipv4/tos_del.py +78 -0
  375. pcapkit/vendor/ipv4/tos_ecn.py +95 -0
  376. pcapkit/vendor/ipv4/tos_pre.py +84 -0
  377. pcapkit/vendor/ipv4/tos_rel.py +78 -0
  378. pcapkit/vendor/ipv4/tos_thr.py +77 -0
  379. pcapkit/vendor/ipv4/ts_flag.py +79 -0
  380. pcapkit/vendor/ipv6/__init__.py +53 -0
  381. pcapkit/vendor/ipv6/extension_header.py +171 -0
  382. pcapkit/vendor/ipv6/option.py +104 -0
  383. pcapkit/vendor/ipv6/option_action.py +90 -0
  384. pcapkit/vendor/ipv6/qs_function.py +78 -0
  385. pcapkit/vendor/ipv6/router_alert.py +93 -0
  386. pcapkit/vendor/ipv6/routing.py +87 -0
  387. pcapkit/vendor/ipv6/seed_id.py +81 -0
  388. pcapkit/vendor/ipv6/smf_dpd_mode.py +78 -0
  389. pcapkit/vendor/ipv6/tagger_id.py +81 -0
  390. pcapkit/vendor/ipx/__init__.py +37 -0
  391. pcapkit/vendor/ipx/packet.py +123 -0
  392. pcapkit/vendor/ipx/socket.py +125 -0
  393. pcapkit/vendor/l2tp/__init__.py +21 -0
  394. pcapkit/vendor/l2tp/type.py +78 -0
  395. pcapkit/vendor/mh/__init__.py +204 -0
  396. pcapkit/vendor/mh/access_type.py +87 -0
  397. pcapkit/vendor/mh/ack_status_code.py +88 -0
  398. pcapkit/vendor/mh/ani_suboption.py +88 -0
  399. pcapkit/vendor/mh/auth_subtype.py +83 -0
  400. pcapkit/vendor/mh/binding_ack_flag.py +148 -0
  401. pcapkit/vendor/mh/binding_error.py +78 -0
  402. pcapkit/vendor/mh/binding_revocation.py +87 -0
  403. pcapkit/vendor/mh/binding_update_flag.py +147 -0
  404. pcapkit/vendor/mh/cga_extension.py +91 -0
  405. pcapkit/vendor/mh/cga_sec.py +91 -0
  406. pcapkit/vendor/mh/cga_type.py +74 -0
  407. pcapkit/vendor/mh/dhcp_support_mode.py +77 -0
  408. pcapkit/vendor/mh/dns_status_code.py +87 -0
  409. pcapkit/vendor/mh/dsmip6_tls_packet.py +87 -0
  410. pcapkit/vendor/mh/dsmipv6_home_address.py +87 -0
  411. pcapkit/vendor/mh/enumerating_algorithm.py +82 -0
  412. pcapkit/vendor/mh/fb_ack_status.py +87 -0
  413. pcapkit/vendor/mh/fb_action.py +88 -0
  414. pcapkit/vendor/mh/fb_indication_trigger.py +87 -0
  415. pcapkit/vendor/mh/fb_type.py +88 -0
  416. pcapkit/vendor/mh/flow_id_status.py +87 -0
  417. pcapkit/vendor/mh/flow_id_suboption.py +87 -0
  418. pcapkit/vendor/mh/handoff_type.py +87 -0
  419. pcapkit/vendor/mh/handover_ack_flag.py +143 -0
  420. pcapkit/vendor/mh/handover_ack_status.py +87 -0
  421. pcapkit/vendor/mh/handover_initiate_flag.py +143 -0
  422. pcapkit/vendor/mh/handover_initiate_status.py +87 -0
  423. pcapkit/vendor/mh/home_address_reply.py +87 -0
  424. pcapkit/vendor/mh/lla_code.py +97 -0
  425. pcapkit/vendor/mh/lma_mag_suboption.py +88 -0
  426. pcapkit/vendor/mh/mn_group_id.py +87 -0
  427. pcapkit/vendor/mh/mn_id_subtype.py +87 -0
  428. pcapkit/vendor/mh/operator_id.py +87 -0
  429. pcapkit/vendor/mh/option.py +83 -0
  430. pcapkit/vendor/mh/packet.py +82 -0
  431. pcapkit/vendor/mh/qos_attribute.py +87 -0
  432. pcapkit/vendor/mh/revocation_status_code.py +87 -0
  433. pcapkit/vendor/mh/revocation_trigger.py +87 -0
  434. pcapkit/vendor/mh/status_code.py +91 -0
  435. pcapkit/vendor/mh/traffic_selector.py +87 -0
  436. pcapkit/vendor/mh/upa_status.py +87 -0
  437. pcapkit/vendor/mh/upn_reason.py +87 -0
  438. pcapkit/vendor/ospf/__init__.py +27 -0
  439. pcapkit/vendor/ospf/authentication.py +29 -0
  440. pcapkit/vendor/ospf/packet.py +29 -0
  441. pcapkit/vendor/pcapng/__init__.py +51 -0
  442. pcapkit/vendor/pcapng/block_type.py +94 -0
  443. pcapkit/vendor/pcapng/filter_type.py +77 -0
  444. pcapkit/vendor/pcapng/hash_algorithm.py +82 -0
  445. pcapkit/vendor/pcapng/option_type.py +287 -0
  446. pcapkit/vendor/pcapng/record_type.py +81 -0
  447. pcapkit/vendor/pcapng/secrets_type.py +81 -0
  448. pcapkit/vendor/pcapng/verdict_type.py +79 -0
  449. pcapkit/vendor/reg/__init__.py +34 -0
  450. pcapkit/vendor/reg/apptype.py +338 -0
  451. pcapkit/vendor/reg/ethertype.py +121 -0
  452. pcapkit/vendor/reg/linktype.py +110 -0
  453. pcapkit/vendor/reg/transtype.py +111 -0
  454. pcapkit/vendor/tcp/__init__.py +35 -0
  455. pcapkit/vendor/tcp/checksum.py +80 -0
  456. pcapkit/vendor/tcp/flags.py +149 -0
  457. pcapkit/vendor/tcp/mp_tcp_option.py +90 -0
  458. pcapkit/vendor/tcp/option.py +103 -0
  459. pcapkit/vendor/vlan/__init__.py +23 -0
  460. pcapkit/vendor/vlan/priority_level.py +97 -0
  461. pypcapkit-1.3.3.post1.dist-info/LICENSE +29 -0
  462. pypcapkit-1.3.3.post1.dist-info/METADATA +236 -0
  463. pypcapkit-1.3.3.post1.dist-info/RECORD +466 -0
  464. pypcapkit-1.3.3.post1.dist-info/WHEEL +5 -0
  465. pypcapkit-1.3.3.post1.dist-info/entry_points.txt +3 -0
  466. pypcapkit-1.3.3.post1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,509 @@
1
+ # -*- coding: utf-8 -*-
2
+ """data model for MH protocol"""
3
+
4
+ from typing import TYPE_CHECKING
5
+
6
+ from pcapkit.corekit.infoclass import info_final
7
+ from pcapkit.protocols.data.data import Data
8
+ from pcapkit.protocols.data.protocol import Protocol
9
+
10
+ if TYPE_CHECKING:
11
+ from datetime import datetime as dt_type
12
+ from datetime import timedelta
13
+ from ipaddress import IPv6Address, IPv6Network
14
+
15
+ from pcapkit.const.mh.access_type import AccessType as Enum_AccessType
16
+ from pcapkit.const.mh.ack_status_code import ACKStatusCode as Enum_ACKStatusCode
17
+ from pcapkit.const.mh.ani_suboption import ANISuboption as Enum_ANISuboption
18
+ from pcapkit.const.mh.auth_subtype import AuthSubtype as Enum_AuthSubtype
19
+ from pcapkit.const.mh.binding_ack_flag import BindingACKFlag as Enum_BindingACKFlag
20
+ from pcapkit.const.mh.binding_error import BindingError as Enum_BindingError
21
+ from pcapkit.const.mh.binding_revocation import BindingRevocation as Enum_BindingRevocation
22
+ from pcapkit.const.mh.binding_update_flag import BindingUpdateFlag as Enum_BindingUpdateFlag
23
+ from pcapkit.const.mh.cga_extension import CGAExtension as Enum_CGAExtension
24
+ from pcapkit.const.mh.cga_type import CGAType as Enum_CGAType
25
+ from pcapkit.const.mh.dhcp_support_mode import DHCPSupportMode as Enum_DHCPSupportMode
26
+ from pcapkit.const.mh.dns_status_code import DNSStatusCode as Enum_DNSStatusCode
27
+ from pcapkit.const.mh.dsmip6_tls_packet import DSMIP6TLSPacket as Enum_DSMIP6TLSPacket
28
+ from pcapkit.const.mh.dsmipv6_home_address import DSMIPv6HomeAddress as Enum_DSMIPv6HomeAddress
29
+ from pcapkit.const.mh.enumerating_algorithm import \
30
+ EnumeratingAlgorithm as Enum_EnumeratingAlgorithm
31
+ from pcapkit.const.mh.fb_ack_status import FlowBindingACKStatus as Enum_FlowBindingACKStatus
32
+ from pcapkit.const.mh.fb_action import FlowBindingAction as Enum_FlowBindingAction
33
+ from pcapkit.const.mh.fb_indication_trigger import \
34
+ FlowBindingIndicationTrigger as Enum_FlowBindingIndicationTrigger
35
+ from pcapkit.const.mh.fb_type import FlowBindingType as Enum_FlowBindingType
36
+ from pcapkit.const.mh.flow_id_status import FlowIDStatus as Enum_FlowIDStatus
37
+ from pcapkit.const.mh.flow_id_suboption import FlowIDSuboption as Enum_FlowIDSuboption
38
+ from pcapkit.const.mh.handoff_type import HandoffType as Enum_HandoffType
39
+ from pcapkit.const.mh.handover_ack_flag import HandoverACKFlag as Enum_HandoverACKFlag
40
+ from pcapkit.const.mh.handover_ack_status import HandoverACKStatus as Enum_HandoverACKStatus
41
+ from pcapkit.const.mh.handover_initiate_flag import \
42
+ HandoverInitiateFlag as Enum_HandoverInitiateFlag
43
+ from pcapkit.const.mh.home_address_reply import HomeAddressReply as Enum_HomeAddressReply
44
+ from pcapkit.const.mh.lla_code import LLACode as Enum_LLACode
45
+ from pcapkit.const.mh.lma_mag_suboption import \
46
+ LMAControlledMAGSuboption as Enum_LMAControlledMAGSuboption
47
+ from pcapkit.const.mh.mn_group_id import MNGroupID as Enum_MNGroupID
48
+ from pcapkit.const.mh.mn_id_subtype import MNIDSubtype as Enum_MNIDSubtype
49
+ from pcapkit.const.mh.operator_id import OperatorID as Enum_OperatorID
50
+ from pcapkit.const.mh.option import Option as Enum_Option
51
+ from pcapkit.const.mh.packet import Packet
52
+ from pcapkit.const.mh.packet import Packet as Enum_Packet
53
+ from pcapkit.const.mh.qos_attribute import QoSAttribute as Enum_QoSAttribute
54
+ from pcapkit.const.mh.revocation_status_code import \
55
+ RevocationStatusCode as Enum_RevocationStatusCode
56
+ from pcapkit.const.mh.revocation_trigger import RevocationTrigger as Enum_RevocationTrigger
57
+ from pcapkit.const.mh.status_code import StatusCode as Enum_StatusCode
58
+ from pcapkit.const.mh.traffic_selector import TrafficSelector as Enum_TrafficSelector
59
+ from pcapkit.const.mh.upa_status import \
60
+ UpdateNotificationACKStatus as Enum_UpdateNotificationACKStatus
61
+ from pcapkit.const.mh.upn_reason import \
62
+ UpdateNotificationReason as Enum_UpdateNotificationReason
63
+ from pcapkit.const.reg.transtype import TransType
64
+ from pcapkit.corekit.multidict import OrderedMultiDict
65
+ from pcapkit.protocols.internet.mh import NTPTimestamp
66
+
67
+ __all__ = [
68
+ 'MH',
69
+ 'UnknownMessage', 'BindingRefreshRequestMessage', 'HomeTestInitMessage', 'CareofTestInitMessage',
70
+ 'HomeTestMessage', 'CareofTestMessage', 'BindingUpdateMessage', 'BindingAcknowledgementMessage',
71
+ 'BindingErrorMessage',
72
+
73
+ 'Option',
74
+ 'UnassignedOption', 'PadOption', 'BindingRefreshAdviceOption', 'AlternateCareofAddressOption',
75
+ 'NonceIndicesOption', 'AuthorizationDataOption', 'MobileNetworkPrefixOption',
76
+ 'LinkLayerAddressOption', 'MNIDOption', 'AuthOption', 'MesgIDOption', 'CGAParametersRequestOption',
77
+ 'CGAParametersOption', 'SignatureOption', 'PermanentHomeKeygenTokenOption', 'CareofTestInitOption',
78
+ 'CareofTestOption',
79
+
80
+ 'CGAParameter',
81
+
82
+ 'CGAExtension',
83
+ 'UnknownExtension', 'MultiPrefixExtension',
84
+
85
+ ]
86
+
87
+
88
+ class MH(Protocol):
89
+ """Data model for MH protocol."""
90
+
91
+ #: Next header.
92
+ next: 'TransType'
93
+ #: Header length.
94
+ length: 'int'
95
+ #: Mobility header type.
96
+ type: 'Packet'
97
+ #: Checksum.
98
+ chksum: 'bytes'
99
+
100
+
101
+ @info_final
102
+ class UnknownMessage(MH):
103
+ """Data model for MH unknown message type."""
104
+
105
+ #: Message data.
106
+ data: 'bytes'
107
+
108
+ if TYPE_CHECKING:
109
+ def __init__(self, next: 'TransType', length: 'int', type: 'Packet', chksum: 'bytes', data: 'bytes') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,redefined-builtin,line-too-long
110
+
111
+
112
+ @info_final
113
+ class BindingRefreshRequestMessage(MH):
114
+ """Data model for MH Binding Refresh Request (BRR) message type."""
115
+
116
+ #: Mobility options.
117
+ options: 'OrderedMultiDict[Enum_Option, Option]'
118
+
119
+ if TYPE_CHECKING:
120
+ def __init__(self, next: 'TransType', length: 'int', type: 'Packet', chksum: 'bytes',
121
+ options: 'OrderedMultiDict[Enum_Option, Option]') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,redefined-builtin,line-too-long
122
+
123
+
124
+ @info_final
125
+ class HomeTestInitMessage(MH):
126
+ """Data modelf for MH Home Test Init (HoTI) message type."""
127
+
128
+ #: Home init cookie.
129
+ cookie: 'bytes'
130
+ #: Mobility options.
131
+ options: 'OrderedMultiDict[Enum_Option, Option]'
132
+
133
+ if TYPE_CHECKING:
134
+ def __init__(self, next: 'TransType', length: 'int', type: 'Packet', chksum: 'bytes',
135
+ cookie: 'bytes', options: 'OrderedMultiDict[Enum_Option, Option]') -> 'None': ...
136
+
137
+
138
+ @info_final
139
+ class CareofTestInitMessage(MH):
140
+ """Data model for MH Care-of Test Init (CoTI) message type."""
141
+
142
+ #: Care-of init cookie.
143
+ cookie: 'bytes'
144
+ #: Mobility options.
145
+ options: 'OrderedMultiDict[Enum_Option, Option]'
146
+
147
+ if TYPE_CHECKING:
148
+ def __init__(self, next: 'TransType', length: 'int', type: 'Packet', chksum: 'bytes',
149
+ cookie: 'bytes', options: 'OrderedMultiDict[Enum_Option, Option]') -> 'None': ...
150
+
151
+
152
+ @info_final
153
+ class HomeTestMessage(MH):
154
+ """Data model for MH Home Test (HoT) message type."""
155
+
156
+ #: Home nonce index.
157
+ nonce_index: 'int'
158
+ #: Home init cookie.
159
+ cookie: 'bytes'
160
+ #: Home keygen token.
161
+ token: 'bytes'
162
+ #: Mobility options.
163
+ options: 'OrderedMultiDict[Enum_Option, Option]'
164
+
165
+ if TYPE_CHECKING:
166
+ def __init__(self, next: 'TransType', length: 'int', type: 'Packet', chksum: 'bytes',
167
+ nonce_index: 'int', cookie: 'bytes', token: 'bytes',
168
+ options: 'OrderedMultiDict[Enum_Option, Option]') -> 'None': ...
169
+
170
+
171
+ @info_final
172
+ class CareofTestMessage(MH):
173
+ """Data model for MH Care-of Test (CoT) message type."""
174
+
175
+ #: Care-of nonce index.
176
+ nonce_index: 'int'
177
+ #: Care-of init cookie.
178
+ cookie: 'bytes'
179
+ #: Care-of keygen token.
180
+ token: 'bytes'
181
+ #: Mobility options.
182
+ options: 'OrderedMultiDict[Enum_Option, Option]'
183
+
184
+ if TYPE_CHECKING:
185
+ def __init__(self, next: 'TransType', length: 'int', type: 'Packet', chksum: 'bytes',
186
+ nonce_index: 'int', cookie: 'bytes', token: 'bytes',
187
+ options: 'OrderedMultiDict[Enum_Option, Option]') -> 'None': ...
188
+
189
+
190
+ @info_final
191
+ class BindingUpdateMessage(MH):
192
+ """Data model for MH Binding Update message type."""
193
+
194
+ #: Sequence number.
195
+ seq: 'int'
196
+ #: Acknowledge flag.
197
+ ack: 'bool'
198
+ #: home registration flag.
199
+ home: 'bool'
200
+ #: Link-local address compability flag.
201
+ lla_compat: 'bool'
202
+ #: Key management mobility capability flag.
203
+ key_mngt: 'bool'
204
+ #: Lifetime.
205
+ lifetime: 'timedelta'
206
+ #: Mobility options.
207
+ options: 'OrderedMultiDict[Enum_Option, Option]'
208
+
209
+ if TYPE_CHECKING:
210
+ def __init__(self, next: 'TransType', length: 'int', type: 'Packet', chksum: 'bytes',
211
+ seq: 'int', ack: 'bool', home: 'bool', lla_compat: 'bool', key_mngt: 'bool',
212
+ lifetime: 'timedelta', options: 'OrderedMultiDict[Enum_Option, Option]') -> 'None': ...
213
+
214
+
215
+ @info_final
216
+ class BindingAcknowledgementMessage(MH):
217
+ """Data model for MH Binding Acknowledge (BA) message type."""
218
+
219
+ #: Status.
220
+ status: 'Enum_StatusCode'
221
+ #: Key management mobility capability flag.
222
+ key_mngt: 'bool'
223
+ #: Sequence number.
224
+ seq: 'int'
225
+ #: Lifetime.
226
+ lifetime: 'timedelta'
227
+ #: Mobility options.
228
+ options: 'OrderedMultiDict[Enum_Option, Option]'
229
+
230
+ if TYPE_CHECKING:
231
+ def __init__(self, next: 'TransType', length: 'int', type: 'Packet', chksum: 'bytes',
232
+ status: 'Enum_StatusCode', key_mngt: 'bool', seq: 'int', lifetime: 'timedelta',
233
+ options: 'OrderedMultiDict[Enum_Option, Option]') -> 'None': ...
234
+
235
+
236
+ @info_final
237
+ class BindingErrorMessage(MH):
238
+ """Data model for MH Binding Error (BE) message type."""
239
+
240
+ #: Status.
241
+ status: 'Enum_BindingError'
242
+ #: Home address.
243
+ home: 'IPv6Address'
244
+ #: Mobility options.
245
+ options: 'OrderedMultiDict[Enum_Option, Option]'
246
+
247
+ if TYPE_CHECKING:
248
+ def __init__(self, next: 'TransType', length: 'int', type: 'Packet', chksum: 'bytes',
249
+ status: 'Enum_BindingError', home: 'IPv6Address',
250
+ options: 'OrderedMultiDict[Enum_Option, Option]') -> 'None': ...
251
+
252
+
253
+ # TODO: Implement other message types.
254
+
255
+
256
+ class Option(Data):
257
+ """Data model for MH options."""
258
+
259
+ #: Option type.
260
+ type: 'Enum_Option'
261
+ #: Option length (incl. type and length fields).
262
+ length: 'int'
263
+
264
+
265
+ @info_final
266
+ class UnassignedOption(Option):
267
+ """Data model for unassigned MH options."""
268
+
269
+ #: Option data.
270
+ data: 'bytes'
271
+
272
+ if TYPE_CHECKING:
273
+ def __init__(self, type: 'Enum_Option', length: 'int', data: 'bytes') -> 'None': ...
274
+
275
+
276
+ @info_final
277
+ class PadOption(Option):
278
+ """Data model for Pad option."""
279
+
280
+ if TYPE_CHECKING:
281
+ def __init__(self, type: 'Enum_Option', length: 'int') -> 'None': ...
282
+
283
+
284
+ @info_final
285
+ class BindingRefreshAdviceOption(Option):
286
+ """Data model for Binding Refresh Advice option."""
287
+
288
+ #: Refresh interval.
289
+ interval: 'int'
290
+
291
+ if TYPE_CHECKING:
292
+ def __init__(self, type: 'Enum_Option', length: 'int', interval: 'int') -> 'None': ...
293
+
294
+
295
+ @info_final
296
+ class AlternateCareofAddressOption(Option):
297
+ """Data model for Alternate Care-of Address option."""
298
+
299
+ #: Alternate care-of address.
300
+ address: 'IPv6Address'
301
+
302
+ if TYPE_CHECKING:
303
+ def __init__(self, type: 'Enum_Option', length: 'int', address: 'IPv6Address') -> 'None': ...
304
+
305
+
306
+ @info_final
307
+ class NonceIndicesOption(Option):
308
+ """Data model for Nonce Indices option."""
309
+
310
+ #: Home nonce index.
311
+ home: 'int'
312
+ #: Care-of nonce index.
313
+ careof: 'int'
314
+
315
+ if TYPE_CHECKING:
316
+ def __init__(self, type: 'Enum_Option', length: 'int', home: 'int', careof: 'int') -> 'None': ...
317
+
318
+
319
+ @info_final
320
+ class AuthorizationDataOption(Option):
321
+ """Data model for Binding Authorization Data option."""
322
+
323
+ #: Authenticator.
324
+ data: 'bytes'
325
+
326
+ if TYPE_CHECKING:
327
+ def __init__(self, type: 'Enum_Option', length: 'int', data: 'bytes') -> 'None': ...
328
+
329
+
330
+ @info_final
331
+ class MobileNetworkPrefixOption(Option):
332
+ """Data model for Mobile Network Prefix option."""
333
+
334
+ #: Mobile Network Prefix.
335
+ prefix: 'IPv6Network'
336
+
337
+ if TYPE_CHECKING:
338
+ def __init__(self, type: 'Enum_Option', length: 'int', prefix: 'IPv6Network') -> 'None': ...
339
+
340
+
341
+ @info_final
342
+ class LinkLayerAddressOption(Option):
343
+ """Data model for MH Link-Layer Address (MH-LLA) option."""
344
+
345
+ #: Option code.
346
+ code: 'Enum_LLACode'
347
+ #: Link-layer address (LLA).
348
+ lla: 'bytes'
349
+
350
+ if TYPE_CHECKING:
351
+ def __init__(self, type: 'Enum_Option', length: 'int', code: 'Enum_LLACode', lla: 'bytes') -> 'None': ...
352
+
353
+
354
+ @info_final
355
+ class MNIDOption(Option):
356
+ """Data model for MN-ID option."""
357
+
358
+ #: Subtype.
359
+ subtype: 'Enum_MNIDSubtype'
360
+ #: Identifier.
361
+ identifier: 'bytes | str | IPv6Address'
362
+
363
+ if TYPE_CHECKING:
364
+ def __init__(self, type: 'Enum_Option', length: 'int', subtype: 'Enum_MNIDSubtype', identifier: 'bytes | str | IPv6Address') -> 'None': ...
365
+
366
+
367
+ @info_final
368
+ class AuthOption(Option):
369
+ """Data model for Mobility Message Authentication option."""
370
+
371
+ #: Subtype.
372
+ subtype: 'Enum_AuthSubtype'
373
+ #: Mobility SPI.
374
+ spi: 'int'
375
+ #: Authentication data.
376
+ data: 'bytes'
377
+
378
+ if TYPE_CHECKING:
379
+ def __init__(self, type: 'Enum_Option', length: 'int', subtype: 'Enum_AuthSubtype', spi: 'int', data: 'bytes') -> 'None': ...
380
+
381
+
382
+ @info_final
383
+ class MesgIDOption(Option):
384
+ """Data model for Mobility Message Replay Protection option."""
385
+
386
+ #: Timestamp.
387
+ timestamp: 'dt_type'
388
+ #: NTP timestamp, c.f., :rfc:`1305`.
389
+ ntp_timestamp: 'NTPTimestamp'
390
+
391
+ if TYPE_CHECKING:
392
+ def __init__(self, type: 'Enum_Option', length: 'int', timestamp: 'dt_type', ntp_timestamp: 'NTPTimestamp') -> 'None': ...
393
+
394
+
395
+ @info_final
396
+ class CGAParametersRequestOption(Option):
397
+ """Data model for CGA Parameters Request option."""
398
+
399
+ if TYPE_CHECKING:
400
+ def __init__(self, type: 'Enum_Option', length: 'int') -> 'None': ...
401
+
402
+
403
+ class CGAExtension(Data):
404
+ """Data model for CGA extension."""
405
+
406
+ #: Extension type.
407
+ type: 'Enum_CGAExtension'
408
+ #: Extension length.
409
+ length: 'int'
410
+
411
+
412
+ @info_final
413
+ class UnknownExtension(CGAExtension):
414
+ """Data model for unknown CGA extensions."""
415
+
416
+ #: Extension data.
417
+ data: 'bytes'
418
+
419
+ if TYPE_CHECKING:
420
+ def __init__(self, type: 'Enum_CGAExtension', length: 'int', data: 'bytes') -> 'None': ...
421
+
422
+
423
+ @info_final
424
+ class MultiPrefixExtension(CGAExtension):
425
+ """Data model for Multi-Prefix CGA extension."""
426
+
427
+ #: P flag. Set if a public key is included in the Public Key field of
428
+ #: the CGA Parameter Data Structure, reset otherwise.
429
+ flag: 'bool'
430
+ #: Prefixes.
431
+ prefixes: 'tuple[int, ...]'
432
+
433
+ if TYPE_CHECKING:
434
+ def __init__(self, type: 'Enum_CGAExtension', length: 'int', flag: 'bool', prefixes: 'tuple[int, ...]') -> 'None': ...
435
+
436
+
437
+ @info_final
438
+ class CGAParameter(Data):
439
+ """Data model for CGA parameter."""
440
+
441
+ #: Modifier.
442
+ modifier: 'Enum_CGAType'
443
+ #: Subnet prefix.
444
+ prefix: 'int'
445
+ #: Collision count.
446
+ collision_count: 'int'
447
+ #: Publick key (ASN.1 encoded).
448
+ public_key: 'bytes'
449
+ #: Extension fields.
450
+ extensions: 'OrderedMultiDict[Enum_CGAExtension, CGAExtension]'
451
+
452
+ if TYPE_CHECKING:
453
+ def __init__(self, modifier: 'Enum_CGAType', prefix: 'int', collision_count: 'int', public_key: 'bytes',
454
+ extensions: 'OrderedMultiDict[Enum_CGAExtension, CGAExtension]') -> 'None': ...
455
+
456
+
457
+ @info_final
458
+ class CGAParametersOption(Option):
459
+ """Data model for CGA Parameters option."""
460
+
461
+ #: CGA parameters, c.f., :rfc:`3972`.
462
+ parameters: 'tuple[CGAParameter, ...]'
463
+
464
+ if TYPE_CHECKING:
465
+ def __init__(self, type: 'Enum_Option', length: 'int', parameters: 'tuple[CGAParameter, ...]') -> 'None': ...
466
+
467
+
468
+ @info_final
469
+ class SignatureOption(Option):
470
+ """Data model for MH Signature option."""
471
+
472
+ #: Signature.
473
+ signature: 'bytes'
474
+
475
+ if TYPE_CHECKING:
476
+ def __init__(self, type: 'Enum_Option', length: 'int', signature: 'bytes') -> 'None': ...
477
+
478
+
479
+ @info_final
480
+ class PermanentHomeKeygenTokenOption(Option):
481
+ """Data model for Permanent Home Keygen Token option."""
482
+
483
+ #: Permanent home keygen token.
484
+ token: 'bytes'
485
+
486
+ if TYPE_CHECKING:
487
+ def __init__(self, type: 'Enum_Option', length: 'int', token: 'bytes') -> 'None': ...
488
+
489
+
490
+ @info_final
491
+ class CareofTestInitOption(Option):
492
+ """Header schema for MH Care-of Test Init options."""
493
+
494
+ if TYPE_CHECKING:
495
+ def __init__(self, type: 'Enum_Option', length: 'int') -> 'None': ...
496
+
497
+
498
+ @info_final
499
+ class CareofTestOption(Option):
500
+ """Header schema for MH Care-of Test options."""
501
+
502
+ #: Care-of keygen token.
503
+ token: 'bytes'
504
+
505
+ if TYPE_CHECKING:
506
+ def __init__(self, type: 'Enum_Option', length: 'int', token: 'bytes') -> 'None': ...
507
+
508
+
509
+ # TODO: Implement other options.
@@ -0,0 +1,33 @@
1
+ # -*- coding: utf-8 -*-
2
+ """data models for link layer protocols"""
3
+
4
+ # Address Resolution Protocol
5
+ from pcapkit.protocols.data.link.arp import ARP
6
+ from pcapkit.protocols.data.link.arp import Address as ARP_Address
7
+ from pcapkit.protocols.data.link.arp import Type as ARP_Type
8
+
9
+ # Ethernet Protocol
10
+ from pcapkit.protocols.data.link.ethernet import Ethernet
11
+
12
+ # Open Shortest Path First
13
+ from pcapkit.protocols.data.link.ospf import OSPF
14
+ from pcapkit.protocols.data.link.ospf import \
15
+ CrytographicAuthentication as OSPF_CrytographicAuthentication
16
+
17
+ # 802.1Q Customer VLAN Tag Type
18
+ from pcapkit.protocols.data.link.vlan import TCI as VLAN_TCI
19
+ from pcapkit.protocols.data.link.vlan import VLAN
20
+
21
+ __all__ = [
22
+ # Address Resolution Protocol
23
+ 'ARP', 'ARP_Address', 'ARP_Type',
24
+
25
+ # Ethernet Protocol
26
+ 'Ethernet',
27
+
28
+ # Open Shortest Path First
29
+ 'OSPF', 'OSPF_CrytographicAuthentication',
30
+
31
+ # 802.1Q Customer VLAN Tag Type
32
+ 'VLAN', 'VLAN_TCI',
33
+ ]
@@ -0,0 +1,74 @@
1
+ # -*- coding: utf-8 -*-
2
+ """data models for address resolution protocol family"""
3
+
4
+ from typing import TYPE_CHECKING
5
+
6
+ from pcapkit.corekit.infoclass import info_final
7
+ from pcapkit.protocols.data.data import Data
8
+ from pcapkit.protocols.data.protocol import Protocol
9
+
10
+ if TYPE_CHECKING:
11
+ from ipaddress import IPv4Address, IPv6Address
12
+
13
+ from pcapkit.const.arp.hardware import Hardware
14
+ from pcapkit.const.arp.operation import Operation
15
+ from pcapkit.const.reg.ethertype import EtherType
16
+
17
+ __all__ = ['Address', 'Type', 'ARP']
18
+
19
+
20
+ @info_final
21
+ class Address(Data):
22
+ """Data model for ARP addresses."""
23
+
24
+ #: Hardware address.
25
+ hardware: 'str'
26
+ #: Protocol address.
27
+ protocol: 'str | IPv4Address | IPv6Address'
28
+
29
+ if TYPE_CHECKING:
30
+ def __init__(self, hardware: 'str', protocol: 'str | IPv4Address | IPv6Address') -> 'None': ... # pylint: disable=line-too-long,super-init-not-called,unused-argument,multiple-statements
31
+
32
+
33
+ @info_final
34
+ class Type(Data):
35
+ """Data model for ARP type."""
36
+
37
+ #: Hardware type.
38
+ hardware: 'Hardware'
39
+ #: Protocol type.
40
+ protocol: 'EtherType | str'
41
+
42
+ if TYPE_CHECKING:
43
+ def __init__(self, hardware: 'Hardware', protocol: 'EtherType | str') -> 'None': ... # pylint: disable=line-too-long,super-init-not-called,unused-argument,multiple-statements
44
+
45
+
46
+ @info_final
47
+ class ARP(Protocol):
48
+ """Data model for ARP packet."""
49
+
50
+ #: Hardware type.
51
+ htype: 'Hardware'
52
+ #: Protocol type.
53
+ ptype: 'EtherType'
54
+ #: Hardware address length.
55
+ hlen: 'int'
56
+ #: Protocol address length.
57
+ plen: 'int'
58
+ #: Operation code.
59
+ oper: 'Operation'
60
+ #: Sender hardware address.
61
+ sha: 'str'
62
+ #: Sender protocol address.
63
+ spa: 'str | IPv4Address | IPv6Address'
64
+ #: Target hardware address.
65
+ tha: 'str'
66
+ #: Target protocol address.
67
+ tpa: 'str | IPv4Address | IPv6Address'
68
+ #: Header length.
69
+ len: 'int'
70
+
71
+ if TYPE_CHECKING:
72
+ def __init__(self, htype: 'Hardware', ptype: 'EtherType', hlen: 'int', plen: 'int', # pylint: disable=line-too-long,super-init-not-called,unused-argument,multiple-statements
73
+ oper: 'Operation', sha: 'str', spa: 'str | IPv4Address | IPv6Address', # pylint: disable=unused-argument
74
+ tha: 'str', tpa: 'str | IPv4Address | IPv6Address', len: 'int') -> 'None': ... # pylint: disable=unused-argument,redefined-builtin
@@ -0,0 +1,28 @@
1
+ # -*- coding: utf-8 -*-
2
+ """data models for ethernet protocol"""
3
+
4
+ from typing import TYPE_CHECKING
5
+
6
+ from pcapkit.corekit.infoclass import info_final
7
+ from pcapkit.protocols.data.data import Data
8
+ from pcapkit.protocols.data.protocol import Protocol
9
+
10
+ if TYPE_CHECKING:
11
+ from pcapkit.const.reg.ethertype import EtherType
12
+
13
+ __all__ = ['Ethernet']
14
+
15
+
16
+ @info_final
17
+ class Ethernet(Protocol):
18
+ """Data model for ethernet packet."""
19
+
20
+ #: Destination MAC address.
21
+ dst: 'str'
22
+ #: Source MAC address.
23
+ src: 'str'
24
+ #: Protocol (internet layer).
25
+ type: 'EtherType'
26
+
27
+ if TYPE_CHECKING:
28
+ def __init__(self, dst: 'str', src: 'str', type: 'EtherType') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,redefined-builtin,multiple-statements