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,158 @@
1
+ # -*- coding: utf-8 -*-
2
+ """Base Protocol
3
+ ===================
4
+
5
+ .. module:: pcapkit.protocols.transport.transport
6
+
7
+ :mod:`pcapkit.protocols.transport.transport` contains
8
+ :class:`~pcapkit.protocols.transport.transport.Transport`,
9
+ which is a base class for transport layer protocols, eg.
10
+ :class:`~pcapkit.protocols.transport.transport.tcp.TCP` and
11
+ :class:`~pcapkit.protocols.transport.transport.udp.UDP`.
12
+
13
+ """
14
+ import io
15
+ from typing import TYPE_CHECKING, Generic
16
+
17
+ from pcapkit.corekit.module import ModuleDescriptor
18
+ from pcapkit.protocols.protocol import _PT, _ST
19
+ from pcapkit.protocols.protocol import ProtocolBase as Protocol
20
+ from pcapkit.utilities.exceptions import StructError, UnsupportedCall, stacklevel
21
+ from pcapkit.utilities.logging import DEVMODE, logger
22
+ from pcapkit.utilities.warnings import RegistryWarning, warn
23
+
24
+ if TYPE_CHECKING:
25
+ from typing import Any, DefaultDict, Optional, Type
26
+
27
+ from typing_extensions import Literal
28
+
29
+ __all__ = ['Transport']
30
+
31
+
32
+ class Transport(Protocol[_PT, _ST], Generic[_PT, _ST]): # pylint: disable=abstract-method
33
+ """Abstract base class for transport layer protocol family."""
34
+
35
+ if TYPE_CHECKING:
36
+ #: Protocol index mapping for decoding next layer,
37
+ #: c.f. :meth:`self._decode_next_layer <pcapkit.protocols.transport.transport.Transport._decode_next_layer>`
38
+ #: & :meth:`self._import_next_layer <pcapkit.protocols.protocol.Protocol._import_next_layer>`.
39
+ __proto__: 'DefaultDict[int, ModuleDescriptor[Protocol] | Type[Protocol]]'
40
+
41
+ ##########################################################################
42
+ # Defaults.
43
+ ##########################################################################
44
+
45
+ #: Layer of protocol.
46
+ __layer__ = 'Transport' # type: Literal['Transport']
47
+
48
+ ##########################################################################
49
+ # Properties.
50
+ ##########################################################################
51
+
52
+ # protocol layer
53
+ @property
54
+ def layer(self) -> 'Literal["Transport"]':
55
+ """Protocol layer."""
56
+ return self.__layer__
57
+
58
+ ##########################################################################
59
+ # Methods.
60
+ ##########################################################################
61
+
62
+ @classmethod
63
+ def register(cls, code: 'int', protocol: 'ModuleDescriptor[Protocol] | Type[Protocol]') -> 'None':
64
+ """Register a new protocol class.
65
+
66
+ Notes:
67
+ The full qualified class name of the new protocol class
68
+ should be as ``{protocol.module}.{protocol.name}``.
69
+
70
+ Arguments:
71
+ code: port number
72
+ protocol: module name
73
+
74
+ Important:
75
+ This method must be called from a non-abstract class, as the
76
+ protocol map should be associated directly with specific
77
+ transport layer protocol type.
78
+
79
+ """
80
+ if cls is Transport:
81
+ raise UnsupportedCall(f'{cls.__name__} is an abstract class')
82
+
83
+ if isinstance(protocol, ModuleDescriptor):
84
+ protocol = protocol.klass
85
+ if not issubclass(protocol, Protocol):
86
+ raise TypeError(f'protocol must be a Protocol subclass, not {protocol!r}')
87
+ if code in cls.__proto__:
88
+ warn(f'port {code} already registered, overwriting', RegistryWarning)
89
+ cls.__proto__[code] = protocol
90
+
91
+ @classmethod
92
+ def analyze(cls, ports: 'tuple[int, int]', payload: 'bytes', **kwargs: 'Any') -> 'Protocol': # type: ignore[override] # pylint: disable=arguments-renamed
93
+ """Analyse packet payload.
94
+
95
+ Args:
96
+ ports: Source & destination port numbers.
97
+ payload: Packet payload.
98
+ **kwargs: Arbitrary keyword arguments.
99
+
100
+ Returns:
101
+ Parsed payload as a :class:`~pcapkit.protocols.protocol.Protocol`
102
+ instance.
103
+
104
+ """
105
+ if ports[0] in cls.__proto__:
106
+ protocol = cls.__proto__[ports[0]]
107
+ else:
108
+ protocol = cls.__proto__[ports[1]]
109
+
110
+ if isinstance(protocol, ModuleDescriptor):
111
+ protocol = protocol.klass
112
+
113
+ payload_io = io.BytesIO(payload)
114
+ try:
115
+ report = protocol(payload_io, len(payload), **kwargs) # type: ignore[abstract]
116
+ except Exception as exc:
117
+ if isinstance(exc, StructError) and exc.eof: # pylint: disable=no-member
118
+ from pcapkit.protocols.misc.null import NoPayload as protocol # pylint: disable=import-outside-toplevel # isort:skip
119
+ else:
120
+ from pcapkit.protocols.misc.raw import Raw as protocol # pylint: disable=import-outside-toplevel # isort:skip
121
+ # error = traceback.format_exc(limit=1).strip().rsplit(os.linesep, maxsplit=1)[-1]
122
+
123
+ # log error
124
+ logger.error(str(exc), exc_info=exc, stack_info=DEVMODE, stacklevel=stacklevel())
125
+
126
+ report = protocol(payload_io, len(payload), **kwargs) # type: ignore[abstract]
127
+ return report
128
+
129
+ ##########################################################################
130
+ # Utilities.
131
+ ##########################################################################
132
+
133
+ def _decode_next_layer(self, dict_: '_PT', ports: 'tuple[int, int]', length: 'Optional[int]' = None, *, # type: ignore[override]
134
+ packet: 'Optional[dict[str, Any]]' = None) -> '_PT': # pylint: disable=arguments-renamed
135
+ """Decode next layer protocol.
136
+
137
+ The method will check if the next layer protocol is supported based on
138
+ the source and destination port numbers. We will use the lower port
139
+ number from both ports as the primary key to lookup the next layer.
140
+
141
+ Arguments:
142
+ dict_: info buffer
143
+ ports: source & destination port numbers
144
+ length: valid (*non-padding*) length
145
+ packet: packet info (passed from :meth:`self.unpack <pcapkit.protocols.protocol.Protocol.unpack>`)
146
+
147
+ Returns:
148
+ Current protocol with next layer extracted.
149
+
150
+ """
151
+ sort_port = sorted(ports)
152
+ if sort_port[0] in self.__proto__:
153
+ proto = sort_port[0]
154
+ elif sort_port[1] in self.__proto__:
155
+ proto = sort_port[1]
156
+ else:
157
+ proto = None
158
+ return super()._decode_next_layer(dict_, proto, length, packet=packet) # type: ignore[arg-type]
@@ -0,0 +1,214 @@
1
+ # -*- coding: utf-8 -*-
2
+ # mypy: disable-error-code=dict-item
3
+ """UDP - User Datagram Protocol
4
+ ==================================
5
+
6
+ .. module:: pcapkit.protocols.transport.udp
7
+
8
+ :mod:`pcapkit.protocols.transport.udp` contains
9
+ :class:`~pcapkit.protocols.transport.udp.UDP` only,
10
+ which implements extractor for User Datagram Protocol
11
+ (UDP) [*]_, whose structure is described as below:
12
+
13
+ ======= ========= ===================== ===============================
14
+ Octets Bits Name Description
15
+ ======= ========= ===================== ===============================
16
+ 0 0 ``udp.srcport`` Source Port
17
+ 2 16 ``udp.dstport`` Destination Port
18
+ 4 32 ``udp.len`` Length (header includes)
19
+ 6 48 ``udp.checksum`` Checksum
20
+ ======= ========= ===================== ===============================
21
+
22
+ .. [*] https://en.wikipedia.org/wiki/User_Datagram_Protocol
23
+
24
+ """
25
+ import collections
26
+ from typing import TYPE_CHECKING
27
+
28
+ from pcapkit.const.reg.transtype import TransType as Enum_TransType
29
+ from pcapkit.corekit.module import ModuleDescriptor
30
+ from pcapkit.protocols.data.transport.udp import UDP as Data_UDP
31
+ from pcapkit.protocols.schema.transport.udp import UDP as Schema_UDP
32
+ from pcapkit.protocols.transport.transport import Transport
33
+
34
+ if TYPE_CHECKING:
35
+ from typing import Any, Optional
36
+
37
+ from typing_extensions import Literal
38
+
39
+ from pcapkit.const.reg.apptype import AppType as Enum_AppType
40
+ from pcapkit.protocols.protocol import ProtocolBase as Protocol
41
+ from pcapkit.protocols.schema.schema import Schema
42
+
43
+ __all__ = ['UDP']
44
+
45
+
46
+ class UDP(Transport[Data_UDP, Schema_UDP],
47
+ schema=Schema_UDP, data=Data_UDP):
48
+ """This class implements User Datagram Protocol.
49
+
50
+ This class currently supports parsing of the following protocols, which are
51
+ registered in the :attr:`self.__proto__ <pcapkit.protocols.transport.udp.UDP.__proto__>`
52
+ attribute:
53
+
54
+ .. list-table::
55
+ :header-rows: 1
56
+
57
+ * - Port Number
58
+ - Protocol
59
+ * - 80
60
+ - :class:`pcapkit.protocols.application.http.HTTP`
61
+
62
+ """
63
+
64
+ ##########################################################################
65
+ # Defaults.
66
+ ##########################################################################
67
+
68
+ #: DefaultDict[int, ModuleDescriptor[Protocol] | Type[Protocol]]: Protocol
69
+ #: index mapping for decoding next layer, c.f.
70
+ #: :meth:`self._decode_next_layer <pcapkit.protocols.transport.transport.Transport._decode_next_layer>`
71
+ #: & :meth:`self._import_next_layer <pcapkit.protocols.protocol.Protocol._import_next_layer>`.
72
+ __proto__ = collections.defaultdict(
73
+ lambda: ModuleDescriptor('pcapkit.protocols.misc.raw', 'Raw'),
74
+ {
75
+ 80: ModuleDescriptor('pcapkit.protocols.application.http', 'HTTP'), # HTTP
76
+ },
77
+ )
78
+
79
+ ##########################################################################
80
+ # Properties.
81
+ ##########################################################################
82
+
83
+ @property
84
+ def name(self) -> 'Literal["User Datagram Protocol"]':
85
+ """Name of current protocol."""
86
+ return 'User Datagram Protocol'
87
+
88
+ @property
89
+ def length(self) -> 'Literal[8]':
90
+ """Header length of current protocol."""
91
+ return 8
92
+
93
+ @property
94
+ def src(self) -> 'Enum_AppType':
95
+ """Source port."""
96
+ return self._info.srcport
97
+
98
+ @property
99
+ def dst(self) -> 'Enum_AppType':
100
+ """Destination port."""
101
+ return self._info.dstport
102
+
103
+ ##########################################################################
104
+ # Methods.
105
+ ##########################################################################
106
+
107
+ def read(self, length: 'Optional[int]' = None, **kwargs: 'Any') -> 'Data_UDP': # pylint: disable=unused-argument
108
+ """Read User Datagram Protocol (UDP).
109
+
110
+ Structure of UDP header [:rfc:`768`]:
111
+
112
+ .. code-block:: text
113
+
114
+ 0 7 8 15 16 23 24 31
115
+ +--------+--------+--------+--------+
116
+ | Source | Destination |
117
+ | Port | Port |
118
+ +--------+--------+--------+--------+
119
+ | | |
120
+ | Length | Checksum |
121
+ +--------+--------+--------+--------+
122
+ |
123
+ | data octets ...
124
+ +---------------- ...
125
+
126
+ Args:
127
+ length: Length of packet data.
128
+ **kwargs: Arbitrary keyword arguments.
129
+
130
+ Returns:
131
+ Parsed packet data.
132
+
133
+ """
134
+ if length is None:
135
+ length = len(self)
136
+ schema = self.__header__
137
+
138
+ udp = Data_UDP(
139
+ srcport=schema.srcport,
140
+ dstport=schema.dstport,
141
+ len=schema.len,
142
+ checksum=schema.checksum,
143
+ )
144
+
145
+ return self._decode_next_layer(udp, (udp.srcport.port, udp.dstport.port), udp.len - 8)
146
+
147
+ def make(self,
148
+ srcport: 'Enum_AppType | int' = 0,
149
+ dstport: 'Enum_AppType | int' = 0,
150
+ checksum: 'bytes' = b'\x00\x00',
151
+ payload: 'bytes | Schema | Protocol' = b'',
152
+ **kwargs: 'Any') -> 'Schema_UDP':
153
+ """Make (construct) packet data.
154
+
155
+ Args:
156
+ srcport: Source port.
157
+ dstport: Destination port.
158
+ checksum: Checksum.
159
+ payload: Payload data.
160
+ **kwargs: Arbitrary keyword arguments.
161
+
162
+ Returns:
163
+ Constructed packet data.
164
+
165
+ """
166
+ return Schema_UDP(
167
+ srcport=srcport,
168
+ dstport=dstport,
169
+ len=8 + len(payload),
170
+ checksum=checksum,
171
+ payload=payload,
172
+ )
173
+
174
+ ##########################################################################
175
+ # Data models.
176
+ ##########################################################################
177
+
178
+ def __length_hint__(self) -> 'Literal[8]':
179
+ """Return an estimated length for the object."""
180
+ return 8
181
+
182
+ @classmethod
183
+ def __index__(cls) -> 'Enum_TransType': # pylint: disable=invalid-index-returned
184
+ """Numeral registry index of the protocol.
185
+
186
+ Returns:
187
+ Numeral registry index of the protocol in `IANA`_.
188
+
189
+ .. _IANA: https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml
190
+
191
+ """
192
+ return Enum_TransType.UDP # type: ignore[return-value]
193
+
194
+ ##########################################################################
195
+ # Utilities.
196
+ ##########################################################################
197
+
198
+ @classmethod
199
+ def _make_data(cls, data: 'Data_UDP') -> 'dict[str, Any]': # type: ignore[override]
200
+ """Create key-value pairs from ``data`` for protocol construction.
201
+
202
+ Args:
203
+ data: protocol data
204
+
205
+ Returns:
206
+ Key-value pairs for protocol construction.
207
+
208
+ """
209
+ return {
210
+ 'srcport': data.srcport,
211
+ 'dstport': data.dstport,
212
+ 'checksum': data.checksum,
213
+ 'payload': cls._make_payload(data),
214
+ }
pcapkit/py.typed ADDED
File without changes
@@ -0,0 +1,57 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=unused-import, unused-wildcard-import
3
+ """Compatibility Tools
4
+ =========================
5
+
6
+ .. module:: pcapkit.toolkit
7
+
8
+ :mod:`pcapkit.toolkit` provides several utility functions for
9
+ compatibility of multiple engine support.
10
+
11
+ """
12
+ # tools for default engine
13
+ from pcapkit.toolkit.pcap import ipv4_reassembly, ipv6_reassembly, tcp_reassembly, tcp_traceflow
14
+ from pcapkit.toolkit.pcapng import ipv4_reassembly as pcapng_ipv4_reassembly
15
+ from pcapkit.toolkit.pcapng import ipv6_reassembly as pcapng_ipv6_reassembly
16
+ from pcapkit.toolkit.pcapng import tcp_reassembly as pcapng_tcp_reassembly
17
+ from pcapkit.toolkit.pcapng import tcp_traceflow as pcapng_tcp_traceflow
18
+ from pcapkit.toolkit.pcapng import block2frame as pcapng_block2frame
19
+
20
+ # # tools for DPKT engine
21
+ # from pcapkit.toolkit.dpkt import ipv6_hdr_len as dpkt_ipv6_hdr_len
22
+ # from pcapkit.toolkit.dpkt import packet2chain as dpkt_packet2chain
23
+ # from pcapkit.toolkit.dpkt import packet2dict as dpkt_packet2dict
24
+ # from pcapkit.toolkit.dpkt import ipv4_reassembly as dpkt_ipv4_reassembly
25
+ # from pcapkit.toolkit.dpkt import ipv6_reassembly as dpkt_ipv6_reassembly
26
+ # from pcapkit.toolkit.dpkt import tcp_reassembly as dpkt_tcp_reassembly
27
+ # from pcapkit.toolkit.dpkt import tcp_traceflow as dpkt_tcp_traceflow
28
+
29
+ # # tools for PyShark engine
30
+ # from pcapkit.toolkit.pyshark import packet2dict as pyshark_packet2dict
31
+ # from pcapkit.toolkit.pyshark import tcp_traceflow as pyshark_tcp_traceflow
32
+
33
+ # # tools for Scapy engine
34
+ # from pcapkit.toolkit.scapy import packet2chain as scapy_packet2chain
35
+ # from pcapkit.toolkit.scapy import packet2dict as scapy_packet2dict
36
+ # from pcapkit.toolkit.scapy import ipv4_reassembly as scapy_ipv4_reassembly
37
+ # from pcapkit.toolkit.scapy import ipv6_reassembly as scapy_ipv6_reassembly
38
+ # from pcapkit.toolkit.scapy import tcp_reassembly as scapy_tcp_reassembly
39
+ # from pcapkit.toolkit.scapy import tcp_traceflow as scapy_tcp_traceflow
40
+
41
+ __all__ = [
42
+ # default engine
43
+ 'ipv4_reassembly', 'ipv6_reassembly', 'tcp_reassembly', 'tcp_traceflow',
44
+ 'pcapng_ipv4_reassembly', 'pcapng_ipv6_reassembly', 'pcapng_tcp_reassembly', 'pcapng_tcp_traceflow',
45
+ 'pcapng_block2frame',
46
+
47
+ # # DPKT engine
48
+ # 'dpkt_ipv6_hdr_len', 'dpkt_packet2chain', 'dpkt_packet2dict',
49
+ # 'dpkt_ipv4_reassembly', 'dpkt_ipv6_reassembly', 'dpkt_tcp_reassembly', 'dpkt_tcp_traceflow',
50
+
51
+ # # PyShark engine
52
+ # 'pyshark_packet2dict', 'pyshark_tcp_traceflow',
53
+
54
+ # # Scapy engine
55
+ # 'scapy_packet2chain', 'scapy_packet2dict',
56
+ # 'scapy_ipv4_reassembly', 'scapy_ipv6_reassembly', 'scapy_tcp_reassembly', 'scapy_tcp_traceflow',
57
+ ]