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,96 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=line-too-long,consider-using-f-string
3
+ """HTTP/2 Settings
4
+ =====================
5
+
6
+ .. module:: pcapkit.const.http.setting
7
+
8
+ This module contains the constant enumeration for **HTTP/2 Settings**,
9
+ which is automatically generated from :class:`pcapkit.vendor.http.setting.Setting`.
10
+
11
+ """
12
+
13
+ from aenum import IntEnum, extend_enum
14
+
15
+ __all__ = ['Setting']
16
+
17
+
18
+ class Setting(IntEnum):
19
+ """[Setting] HTTP/2 Settings"""
20
+
21
+ #: ``Reserved`` [:rfc:`9113`]
22
+ Reserved_0x0000 = 0x0000
23
+
24
+ #: ``HEADER_TABLE_SIZE`` [:rfc:`9113#section-6.5.2`] (Initial Value: 4096)
25
+ HEADER_TABLE_SIZE = 0x0001
26
+
27
+ #: ``ENABLE_PUSH`` [:rfc:`9113#section-6.5.2`] (Initial Value: 1)
28
+ ENABLE_PUSH = 0x0002
29
+
30
+ #: ``MAX_CONCURRENT_STREAMS`` [:rfc:`9113#section-6.5.2`] (Initial Value:
31
+ #: infinite)
32
+ MAX_CONCURRENT_STREAMS = 0x0003
33
+
34
+ #: ``INITIAL_WINDOW_SIZE`` [:rfc:`9113#section-6.5.2`] (Initial Value: 65535)
35
+ INITIAL_WINDOW_SIZE = 0x0004
36
+
37
+ #: ``MAX_FRAME_SIZE`` [:rfc:`9113#section-6.5.2`] (Initial Value: 16384)
38
+ MAX_FRAME_SIZE = 0x0005
39
+
40
+ #: ``MAX_HEADER_LIST_SIZE`` [:rfc:`9113#section-6.5.2`] (Initial Value:
41
+ #: infinite)
42
+ MAX_HEADER_LIST_SIZE = 0x0006
43
+
44
+ #: ``Unassigned``
45
+ Unassigned_0x0007 = 0x0007
46
+
47
+ #: ``SETTINGS_ENABLE_CONNECT_PROTOCOL`` [:rfc:`8441`] (Initial Value: 0)
48
+ SETTINGS_ENABLE_CONNECT_PROTOCOL = 0x0008
49
+
50
+ #: ``SETTINGS_NO_RFC7540_PRIORITIES`` [:rfc:`9218`] (Initial Value: 0)
51
+ SETTINGS_NO_RFC7540_PRIORITIES = 0x0009
52
+
53
+ #: ``TLS_RENEG_PERMITTED`` [MS-HTTP2E][Gabriel Montenegro] (Initial Value:
54
+ #: 0x00)
55
+ TLS_RENEG_PERMITTED = 0x0010
56
+
57
+ #: ``SETTINGS_ENABLE_METADATA`` [draft-beky-httpbis-metadata-02] (Initial
58
+ #: Value: 0)
59
+ SETTINGS_ENABLE_METADATA = 0x4D44
60
+
61
+ @staticmethod
62
+ def get(key: 'int | str', default: 'int' = -1) -> 'Setting':
63
+ """Backport support for original codes.
64
+
65
+ Args:
66
+ key: Key to get enum item.
67
+ default: Default value if not found.
68
+
69
+ :meta private:
70
+ """
71
+ if isinstance(key, int):
72
+ return Setting(key)
73
+ if key not in Setting._member_map_: # pylint: disable=no-member
74
+ return extend_enum(Setting, key, default)
75
+ return Setting[key] # type: ignore[misc]
76
+
77
+ @classmethod
78
+ def _missing_(cls, value: 'int') -> 'Setting':
79
+ """Lookup function used when value is not found.
80
+
81
+ Args:
82
+ value: Value to get enum item.
83
+
84
+ """
85
+ if not (isinstance(value, int) and 0x0000 <= value <= 0xFFFF):
86
+ raise ValueError('%r is not a valid %s' % (value, cls.__name__))
87
+ if 0x000A <= value <= 0x000F:
88
+ #: ``Unassigned``
89
+ return extend_enum(cls, 'Unassigned_0x%s' % hex(value)[2:].upper().zfill(4), value)
90
+ if 0x0011 <= value <= 0x4D43:
91
+ #: ``Unassigned``
92
+ return extend_enum(cls, 'Unassigned_0x%s' % hex(value)[2:].upper().zfill(4), value)
93
+ if 0x4D45 <= value <= 0xFFFF:
94
+ #: ``Unassigned``
95
+ return extend_enum(cls, 'Unassigned_0x%s' % hex(value)[2:].upper().zfill(4), value)
96
+ return super()._missing_(value)
@@ -0,0 +1,294 @@
1
+ # -*- coding: utf-8 -*-
2
+ # mypy: disable-error-code=assignment
3
+ # pylint: disable=line-too-long,consider-using-f-string
4
+ """HTTP Status Code
5
+ ======================
6
+
7
+ .. module:: pcapkit.const.http.status_code
8
+
9
+ This module contains the constant enumeration for **HTTP Status Code**,
10
+ which is automatically generated from :class:`pcapkit.vendor.http.status_code.StatusCode`.
11
+
12
+ """
13
+
14
+ from typing import TYPE_CHECKING
15
+
16
+ from aenum import IntEnum, extend_enum
17
+
18
+ if TYPE_CHECKING:
19
+ from typing import Type
20
+
21
+ __all__ = ['StatusCode']
22
+
23
+
24
+ class StatusCode(IntEnum):
25
+ """[StatusCode] HTTP Status Code"""
26
+
27
+ if TYPE_CHECKING:
28
+ #: Status message.
29
+ message: 'str'
30
+
31
+ def __new__(cls, value: 'int', message: 'str' = '(Unknown)') -> 'Type[StatusCode]':
32
+ obj = int.__new__(cls, value)
33
+ obj._value_ = value
34
+
35
+ obj.message = message
36
+
37
+ return obj
38
+
39
+ def __repr__(self) -> 'str':
40
+ return "<%s [%s]>" % (self.__class__.__name__, self._value_)
41
+
42
+ def __str__(self) -> 'str':
43
+ return "[%s] %s" % (self._value_, self.message)
44
+
45
+ #: Continue [:rfc:`9110#section-15.2.1`]
46
+ CODE_100 = 100, 'Continue'
47
+
48
+ #: Switching Protocols [:rfc:`9110#section-15.2.2`]
49
+ CODE_101 = 101, 'Switching Protocols'
50
+
51
+ #: Processing [:rfc:`2518`]
52
+ CODE_102 = 102, 'Processing'
53
+
54
+ #: Early Hints [:rfc:`8297`]
55
+ CODE_103 = 103, 'Early Hints'
56
+
57
+ #: OK [:rfc:`9110#section-15.3.1`]
58
+ CODE_200 = 200, 'OK'
59
+
60
+ #: Created [:rfc:`9110#section-15.3.2`]
61
+ CODE_201 = 201, 'Created'
62
+
63
+ #: Accepted [:rfc:`9110#section-15.3.3`]
64
+ CODE_202 = 202, 'Accepted'
65
+
66
+ #: Non-Authoritative Information [:rfc:`9110#section-15.3.4`]
67
+ CODE_203 = 203, 'Non-Authoritative Information'
68
+
69
+ #: No Content [:rfc:`9110#section-15.3.5`]
70
+ CODE_204 = 204, 'No Content'
71
+
72
+ #: Reset Content [:rfc:`9110#section-15.3.6`]
73
+ CODE_205 = 205, 'Reset Content'
74
+
75
+ #: Partial Content [:rfc:`9110#section-15.3.7`]
76
+ CODE_206 = 206, 'Partial Content'
77
+
78
+ #: Multi-Status [:rfc:`4918`]
79
+ CODE_207 = 207, 'Multi-Status'
80
+
81
+ #: Already Reported [:rfc:`5842`]
82
+ CODE_208 = 208, 'Already Reported'
83
+
84
+ #: IM Used [:rfc:`3229`]
85
+ CODE_226 = 226, 'IM Used'
86
+
87
+ #: Multiple Choices [:rfc:`9110#section-15.4.1`]
88
+ CODE_300 = 300, 'Multiple Choices'
89
+
90
+ #: Moved Permanently [:rfc:`9110#section-15.4.2`]
91
+ CODE_301 = 301, 'Moved Permanently'
92
+
93
+ #: Found [:rfc:`9110#section-15.4.3`]
94
+ CODE_302 = 302, 'Found'
95
+
96
+ #: See Other [:rfc:`9110#section-15.4.4`]
97
+ CODE_303 = 303, 'See Other'
98
+
99
+ #: Not Modified [:rfc:`9110#section-15.4.5`]
100
+ CODE_304 = 304, 'Not Modified'
101
+
102
+ #: Use Proxy [:rfc:`9110#section-15.4.6`]
103
+ CODE_305 = 305, 'Use Proxy'
104
+
105
+ #: (Unused) [:rfc:`9110#section-15.4.7`]
106
+ CODE_306 = 306, '(Unused)'
107
+
108
+ #: Temporary Redirect [:rfc:`9110#section-15.4.8`]
109
+ CODE_307 = 307, 'Temporary Redirect'
110
+
111
+ #: Permanent Redirect [:rfc:`9110#section-15.4.9`]
112
+ CODE_308 = 308, 'Permanent Redirect'
113
+
114
+ #: Bad Request [:rfc:`9110#section-15.5.1`]
115
+ CODE_400 = 400, 'Bad Request'
116
+
117
+ #: Unauthorized [:rfc:`9110#section-15.5.2`]
118
+ CODE_401 = 401, 'Unauthorized'
119
+
120
+ #: Payment Required [:rfc:`9110#section-15.5.3`]
121
+ CODE_402 = 402, 'Payment Required'
122
+
123
+ #: Forbidden [:rfc:`9110#section-15.5.4`]
124
+ CODE_403 = 403, 'Forbidden'
125
+
126
+ #: Not Found [:rfc:`9110#section-15.5.5`]
127
+ CODE_404 = 404, 'Not Found'
128
+
129
+ #: Method Not Allowed [:rfc:`9110#section-15.5.6`]
130
+ CODE_405 = 405, 'Method Not Allowed'
131
+
132
+ #: Not Acceptable [:rfc:`9110#section-15.5.7`]
133
+ CODE_406 = 406, 'Not Acceptable'
134
+
135
+ #: Proxy Authentication Required [:rfc:`9110#section-15.5.8`]
136
+ CODE_407 = 407, 'Proxy Authentication Required'
137
+
138
+ #: Request Timeout [:rfc:`9110#section-15.5.9`]
139
+ CODE_408 = 408, 'Request Timeout'
140
+
141
+ #: Conflict [:rfc:`9110#section-15.5.10`]
142
+ CODE_409 = 409, 'Conflict'
143
+
144
+ #: Gone [:rfc:`9110#section-15.5.11`]
145
+ CODE_410 = 410, 'Gone'
146
+
147
+ #: Length Required [:rfc:`9110#section-15.5.12`]
148
+ CODE_411 = 411, 'Length Required'
149
+
150
+ #: Precondition Failed [:rfc:`9110#section-15.5.13`]
151
+ CODE_412 = 412, 'Precondition Failed'
152
+
153
+ #: Content Too Large [:rfc:`9110#section-15.5.14`]
154
+ CODE_413 = 413, 'Content Too Large'
155
+
156
+ #: URI Too Long [:rfc:`9110#section-15.5.15`]
157
+ CODE_414 = 414, 'URI Too Long'
158
+
159
+ #: Unsupported Media Type [:rfc:`9110#section-15.5.16`]
160
+ CODE_415 = 415, 'Unsupported Media Type'
161
+
162
+ #: Range Not Satisfiable [:rfc:`9110#section-15.5.17`]
163
+ CODE_416 = 416, 'Range Not Satisfiable'
164
+
165
+ #: Expectation Failed [:rfc:`9110#section-15.5.18`]
166
+ CODE_417 = 417, 'Expectation Failed'
167
+
168
+ #: (Unused) [:rfc:`9110#section-15.5.19`]
169
+ CODE_418 = 418, '(Unused)'
170
+
171
+ #: Misdirected Request [:rfc:`9110#section-15.5.20`]
172
+ CODE_421 = 421, 'Misdirected Request'
173
+
174
+ #: Unprocessable Content [:rfc:`9110#section-15.5.21`]
175
+ CODE_422 = 422, 'Unprocessable Content'
176
+
177
+ #: Locked [:rfc:`4918`]
178
+ CODE_423 = 423, 'Locked'
179
+
180
+ #: Failed Dependency [:rfc:`4918`]
181
+ CODE_424 = 424, 'Failed Dependency'
182
+
183
+ #: Too Early [:rfc:`8470`]
184
+ CODE_425 = 425, 'Too Early'
185
+
186
+ #: Upgrade Required [:rfc:`9110#section-15.5.22`]
187
+ CODE_426 = 426, 'Upgrade Required'
188
+
189
+ #: Unassigned
190
+ CODE_427 = 427, 'Unassigned'
191
+
192
+ #: Precondition Required [:rfc:`6585`]
193
+ CODE_428 = 428, 'Precondition Required'
194
+
195
+ #: Too Many Requests [:rfc:`6585`]
196
+ CODE_429 = 429, 'Too Many Requests'
197
+
198
+ #: Unassigned
199
+ CODE_430 = 430, 'Unassigned'
200
+
201
+ #: Request Header Fields Too Large [:rfc:`6585`]
202
+ CODE_431 = 431, 'Request Header Fields Too Large'
203
+
204
+ #: Unavailable For Legal Reasons [:rfc:`7725`]
205
+ CODE_451 = 451, 'Unavailable For Legal Reasons'
206
+
207
+ #: Internal Server Error [:rfc:`9110#section-15.6.1`]
208
+ CODE_500 = 500, 'Internal Server Error'
209
+
210
+ #: Not Implemented [:rfc:`9110#section-15.6.2`]
211
+ CODE_501 = 501, 'Not Implemented'
212
+
213
+ #: Bad Gateway [:rfc:`9110#section-15.6.3`]
214
+ CODE_502 = 502, 'Bad Gateway'
215
+
216
+ #: Service Unavailable [:rfc:`9110#section-15.6.4`]
217
+ CODE_503 = 503, 'Service Unavailable'
218
+
219
+ #: Gateway Timeout [:rfc:`9110#section-15.6.5`]
220
+ CODE_504 = 504, 'Gateway Timeout'
221
+
222
+ #: HTTP Version Not Supported [:rfc:`9110#section-15.6.6`]
223
+ CODE_505 = 505, 'HTTP Version Not Supported'
224
+
225
+ #: Variant Also Negotiates [:rfc:`2295`]
226
+ CODE_506 = 506, 'Variant Also Negotiates'
227
+
228
+ #: Insufficient Storage [:rfc:`4918`]
229
+ CODE_507 = 507, 'Insufficient Storage'
230
+
231
+ #: Loop Detected [:rfc:`5842`]
232
+ CODE_508 = 508, 'Loop Detected'
233
+
234
+ #: Unassigned
235
+ CODE_509 = 509, 'Unassigned'
236
+
237
+ #: Not Extended (OBSOLETED) [:rfc:`2774`][Status change of HTTP experiments to
238
+ #: Historic]
239
+ CODE_510 = 510, 'Not Extended'
240
+
241
+ #: Network Authentication Required [:rfc:`6585`]
242
+ CODE_511 = 511, 'Network Authentication Required'
243
+
244
+ @staticmethod
245
+ def get(key: 'int | str', default: 'int' = -1) -> 'StatusCode':
246
+ """Backport support for original codes.
247
+
248
+ Args:
249
+ key: Key to get enum item.
250
+ default: Default value if not found.
251
+
252
+ :meta private:
253
+ """
254
+ if isinstance(key, int):
255
+ return StatusCode(key)
256
+ if key not in StatusCode._member_map_: # pylint: disable=no-member
257
+ extend_enum(StatusCode, key, default)
258
+ return StatusCode[key] # type: ignore[misc]
259
+
260
+ @classmethod
261
+ def _missing_(cls, value: 'int') -> 'StatusCode':
262
+ """Lookup function used when value is not found.
263
+
264
+ Args:
265
+ value: Value to get enum item.
266
+
267
+ """
268
+ if not (isinstance(value, int) and 100 <= value <= 599):
269
+ raise ValueError('%r is not a valid %s' % (value, cls.__name__))
270
+ if 104 <= value <= 199:
271
+ #: Unassigned
272
+ return extend_enum(cls, 'CODE_%d' % value, value, 'Unassigned')
273
+ if 209 <= value <= 225:
274
+ #: Unassigned
275
+ return extend_enum(cls, 'CODE_%d' % value, value, 'Unassigned')
276
+ if 227 <= value <= 299:
277
+ #: Unassigned
278
+ return extend_enum(cls, 'CODE_%d' % value, value, 'Unassigned')
279
+ if 309 <= value <= 399:
280
+ #: Unassigned
281
+ return extend_enum(cls, 'CODE_%d' % value, value, 'Unassigned')
282
+ if 419 <= value <= 420:
283
+ #: Unassigned
284
+ return extend_enum(cls, 'CODE_%d' % value, value, 'Unassigned')
285
+ if 432 <= value <= 450:
286
+ #: Unassigned
287
+ return extend_enum(cls, 'CODE_%d' % value, value, 'Unassigned')
288
+ if 452 <= value <= 499:
289
+ #: Unassigned
290
+ return extend_enum(cls, 'CODE_%d' % value, value, 'Unassigned')
291
+ if 512 <= value <= 599:
292
+ #: Unassigned
293
+ return extend_enum(cls, 'CODE_%d' % value, value, 'Unassigned')
294
+ return super()._missing_(value)
@@ -0,0 +1,57 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=unused-import
3
+ """:class:`~pcapkit.protocols.internet.ipv4.IPv4` Constant Enumerations
4
+ ==========================================================================
5
+
6
+ This module contains all constant enumerations of
7
+ :class:`~pcapkit.protocols.internet.ipv4.IPv4` implementations. Available
8
+ enumerations include:
9
+
10
+ .. list-table::
11
+
12
+ * - :class:`IPv4_ClassificationLevel <pcapkit.const.ipv4.classification_level.ClassificationLevel>`
13
+ - Classification Level Encodings
14
+ * - :class:`IPv4_OptionClass <pcapkit.const.ipv4.option_class.OptionClass>`
15
+ - Option Classes
16
+ * - :class:`IPv4_OptionNumber <pcapkit.const.ipv4.option_number.OptionNumber>`
17
+ - IP Option Numbers [*]_
18
+ * - :class:`IPv4_ProtectionAuthority <pcapkit.const.ipv4.protection_authority.ProtectionAuthority>`
19
+ - Protection Authority Bit Assignments
20
+ * - :class:`IPv4_QSFunction <pcapkit.const.ipv4.qs_function.QSFunction>`
21
+ - QS Functions
22
+ * - :class:`IPv4_RouterAlert <pcapkit.const.ipv4.router_alert.RouterAlert>`
23
+ - IPv4 Router Alert Option Values [*]_
24
+ * - :class:`IPv4_ToSDelay <pcapkit.const.ipv4.tos_del.ToSDelay>`
25
+ - ToS (DS Field) Delay
26
+ * - :class:`IPv4_ToSECN <pcapkit.const.ipv4.tos_ecn.ToSECN>`
27
+ - ToS ECN Field
28
+ * - :class:`IPv4_ToSPrecedence <pcapkit.const.ipv4.tos_pre.TOSPrecedence>`
29
+ - ToS (DS Field) Precedence
30
+ * - :class:`IPv4_ToSReliability <pcapkit.const.ipv4.tos_rel.TOSReliability>`
31
+ - ToS (DS Field) Reliability
32
+ * - :class:`IPv4_ToSThroughput <pcapkit.const.ipv4.tos_thr.TOSThroughput>`
33
+ - ToS (DS Field) Throughput
34
+ * - :class:`IPv4_TSFlag <pcapkit.const.ipv4.ts_flag.TSFlag>`
35
+ - TS Flag
36
+
37
+ .. [*] https://www.iana.org/assignments/ip-parameters/ip-parameters.xhtml#ip-parameters-1
38
+ .. [*] https://www.iana.org/assignments/ip-parameters/ip-parameters.xhtml#ipv4-router-alert-option-values
39
+
40
+ """
41
+
42
+ from pcapkit.const.ipv4.classification_level import ClassificationLevel as IPv4_ClassificationLevel
43
+ from pcapkit.const.ipv4.option_class import OptionClass as IPv4_OptionClass
44
+ from pcapkit.const.ipv4.option_number import OptionNumber as IPv4_OptionNumber
45
+ from pcapkit.const.ipv4.protection_authority import ProtectionAuthority as IPv4_ProtectionAuthority
46
+ from pcapkit.const.ipv4.qs_function import QSFunction as IPv4_QSFunction
47
+ from pcapkit.const.ipv4.router_alert import RouterAlert as IPv4_RouterAlert
48
+ from pcapkit.const.ipv4.tos_del import ToSDelay as IPv4_ToSDelay
49
+ from pcapkit.const.ipv4.tos_ecn import ToSECN as IPv4_ToSECN
50
+ from pcapkit.const.ipv4.tos_pre import ToSPrecedence as IPv4_ToSPrecedence
51
+ from pcapkit.const.ipv4.tos_rel import ToSReliability as IPv4_ToSReliability
52
+ from pcapkit.const.ipv4.tos_thr import ToSThroughput as IPv4_ToSThroughput
53
+ from pcapkit.const.ipv4.ts_flag import TSFlag as IPv4_TSFlag
54
+
55
+ __all__ = ['IPv4_ClassificationLevel', 'IPv4_OptionClass', 'IPv4_OptionNumber', 'IPv4_ProtectionAuthority',
56
+ 'IPv4_QSFunction', 'IPv4_RouterAlert', 'IPv4_ToSDelay', 'IPv4_ToSECN', 'IPv4_ToSPrecedence',
57
+ 'IPv4_ToSReliability', 'IPv4_ToSThroughput', 'IPv4_TSFlag']
@@ -0,0 +1,64 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=line-too-long,consider-using-f-string
3
+ """Classification Level Encodings
4
+ ====================================
5
+
6
+ .. module:: pcapkit.const.ipv4.classification_level
7
+
8
+ This module contains the constant enumeration for **Classification Level Encodings**,
9
+ which is automatically generated from :class:`pcapkit.vendor.ipv4.classification_level.ClassificationLevel`.
10
+
11
+ """
12
+
13
+ from aenum import IntEnum, extend_enum
14
+
15
+ __all__ = ['ClassificationLevel']
16
+
17
+
18
+ class ClassificationLevel(IntEnum):
19
+ """[ClassificationLevel] Classification Level Encodings"""
20
+
21
+ Reserved_4 = 0b00000001
22
+
23
+ Top_Secret = 0b00111101
24
+
25
+ Secret = 0b01011010
26
+
27
+ Confidential = 0b10010110
28
+
29
+ Reserved_3 = 0b01100110
30
+
31
+ Reserved_2 = 0b11001100
32
+
33
+ Unclassified = 0b10101011
34
+
35
+ Reserved_1 = 0b11110001
36
+
37
+ @staticmethod
38
+ def get(key: 'int | str', default: 'int' = -1) -> 'ClassificationLevel':
39
+ """Backport support for original codes.
40
+
41
+ Args:
42
+ key: Key to get enum item.
43
+ default: Default value if not found.
44
+
45
+ :meta private:
46
+ """
47
+ if isinstance(key, int):
48
+ return ClassificationLevel(key)
49
+ if key not in ClassificationLevel._member_map_: # pylint: disable=no-member
50
+ return extend_enum(ClassificationLevel, key, default)
51
+ return ClassificationLevel[key] # type: ignore[misc]
52
+
53
+ @classmethod
54
+ def _missing_(cls, value: 'int') -> 'ClassificationLevel':
55
+ """Lookup function used when value is not found.
56
+
57
+ Args:
58
+ value: Value to get enum item.
59
+
60
+ """
61
+ if not (isinstance(value, int) and 0b00000000 <= value <= 0b11111111):
62
+ raise ValueError('%r is not a valid %s' % (value, cls.__name__))
63
+ temp = bin(value)[2:].upper().zfill(8)
64
+ return extend_enum(cls, 'Unassigned_0b%s' % (temp[:4]+'_'+temp[4:]), value)
@@ -0,0 +1,55 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=line-too-long,consider-using-f-string
3
+ """Option Classes
4
+ ====================
5
+
6
+ .. module:: pcapkit.const.ipv4.option_class
7
+
8
+ This module contains the constant enumeration for **Option Classes**,
9
+ which is automatically generated from :class:`pcapkit.vendor.ipv4.option_class.OptionClass`.
10
+
11
+ """
12
+
13
+ from aenum import IntEnum, extend_enum
14
+
15
+ __all__ = ['OptionClass']
16
+
17
+
18
+ class OptionClass(IntEnum):
19
+ """[OptionClass] Option Classes"""
20
+
21
+ control = 0
22
+
23
+ reserved_for_future_use_1 = 1
24
+
25
+ debugging_and_measurement = 2
26
+
27
+ reserved_for_future_use_3 = 3
28
+
29
+ @staticmethod
30
+ def get(key: 'int | str', default: 'int' = -1) -> 'OptionClass':
31
+ """Backport support for original codes.
32
+
33
+ Args:
34
+ key: Key to get enum item.
35
+ default: Default value if not found.
36
+
37
+ :meta private:
38
+ """
39
+ if isinstance(key, int):
40
+ return OptionClass(key)
41
+ if key not in OptionClass._member_map_: # pylint: disable=no-member
42
+ return extend_enum(OptionClass, key, default)
43
+ return OptionClass[key] # type: ignore[misc]
44
+
45
+ @classmethod
46
+ def _missing_(cls, value: 'int') -> 'OptionClass':
47
+ """Lookup function used when value is not found.
48
+
49
+ Args:
50
+ value: Value to get enum item.
51
+
52
+ """
53
+ if not (isinstance(value, int) and 0 <= value <= 3):
54
+ raise ValueError('%r is not a valid %s' % (value, cls.__name__))
55
+ return extend_enum(cls, 'Unassigned_%d' % value, value)
@@ -0,0 +1,137 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=line-too-long,consider-using-f-string
3
+ """IP Option Numbers
4
+ =======================
5
+
6
+ .. module:: pcapkit.const.ipv4.option_number
7
+
8
+ This module contains the constant enumeration for **IP Option Numbers**,
9
+ which is automatically generated from :class:`pcapkit.vendor.ipv4.option_number.OptionNumber`.
10
+
11
+ """
12
+
13
+ from aenum import IntEnum, extend_enum
14
+
15
+ __all__ = ['OptionNumber']
16
+
17
+
18
+ class OptionNumber(IntEnum):
19
+ """[OptionNumber] IP Option Numbers"""
20
+
21
+ #: ``EOOL``, End of Options List [:rfc:`791`][Jon Postel]
22
+ EOOL = 0
23
+
24
+ #: ``NOP``, No Operation [:rfc:`791`][Jon Postel]
25
+ NOP = 1
26
+
27
+ #: ``SEC``, Security [:rfc:`1108`]
28
+ SEC = 130
29
+
30
+ #: ``LSR``, Loose Source Route [:rfc:`791`][Jon Postel]
31
+ LSR = 131
32
+
33
+ #: ``TS``, Time Stamp [:rfc:`791`][Jon Postel]
34
+ TS = 68
35
+
36
+ #: ``E-SEC``, Extended Security [:rfc:`1108`]
37
+ E_SEC = 133
38
+
39
+ #: ``CIPSO``, Commercial Security [draft-ietf-cipso-ipsecurity-01]
40
+ CIPSO = 134
41
+
42
+ #: ``RR``, Record Route [:rfc:`791`][Jon Postel]
43
+ RR = 7
44
+
45
+ #: ``SID``, Stream ID [:rfc:`791`][Jon Postel][:rfc:`6814`]
46
+ SID = 136
47
+
48
+ #: ``SSR``, Strict Source Route [:rfc:`791`][Jon Postel]
49
+ SSR = 137
50
+
51
+ #: ``ZSU``, Experimental Measurement [ZSu]
52
+ ZSU = 10
53
+
54
+ #: ``MTUP``, MTU Probe [:rfc:`1063`][:rfc:`1191`]
55
+ MTUP = 11
56
+
57
+ #: ``MTUR``, MTU Reply [:rfc:`1063`][:rfc:`1191`]
58
+ MTUR = 12
59
+
60
+ #: ``FINN``, Experimental Flow Control [Greg Finn]
61
+ FINN = 205
62
+
63
+ #: ``VISA``, Experimental Access Control [Deborah Estrin][:rfc:`6814`]
64
+ VISA = 142
65
+
66
+ #: ``ENCODE``, ??? [VerSteeg][:rfc:`6814`]
67
+ ENCODE = 15
68
+
69
+ #: ``IMITD``, IMI Traffic Descriptor [Lee]
70
+ IMITD = 144
71
+
72
+ #: ``EIP``, Extended Internet Protocol [:rfc:`1385`][:rfc:`6814`]
73
+ EIP = 145
74
+
75
+ #: ``TR``, Traceroute [:rfc:`1393`][:rfc:`6814`]
76
+ TR = 82
77
+
78
+ #: ``ADDEXT``, Address Extension [Ullmann IPv7][:rfc:`6814`]
79
+ ADDEXT = 147
80
+
81
+ #: ``RTRALT``, Router Alert [:rfc:`2113`]
82
+ RTRALT = 148
83
+
84
+ #: ``SDB``, Selective Directed Broadcast [Charles Bud Graff][:rfc:`6814`]
85
+ SDB = 149
86
+
87
+ #: Unassigned (Released 18 October 2005)
88
+ Unassigned_150 = 150
89
+
90
+ #: ``DPS``, Dynamic Packet State [Andy Malis][:rfc:`6814`]
91
+ DPS = 151
92
+
93
+ #: ``UMP``, Upstream Multicast Pkt. [Dino Farinacci][:rfc:`6814`]
94
+ UMP = 152
95
+
96
+ #: ``QS``, Quick-Start [:rfc:`4782`]
97
+ QS = 25
98
+
99
+ #: ``EXP``, RFC3692-style Experiment [:rfc:`4727`]
100
+ EXP_30 = 30
101
+
102
+ #: ``EXP``, RFC3692-style Experiment [:rfc:`4727`]
103
+ EXP_94 = 94
104
+
105
+ #: ``EXP``, RFC3692-style Experiment [:rfc:`4727`]
106
+ EXP_158 = 158
107
+
108
+ #: ``EXP``, RFC3692-style Experiment [:rfc:`4727`]
109
+ EXP_222 = 222
110
+
111
+ @staticmethod
112
+ def get(key: 'int | str', default: 'int' = -1) -> 'OptionNumber':
113
+ """Backport support for original codes.
114
+
115
+ Args:
116
+ key: Key to get enum item.
117
+ default: Default value if not found.
118
+
119
+ :meta private:
120
+ """
121
+ if isinstance(key, int):
122
+ return OptionNumber(key)
123
+ if key not in OptionNumber._member_map_: # pylint: disable=no-member
124
+ return extend_enum(OptionNumber, key, default)
125
+ return OptionNumber[key] # type: ignore[misc]
126
+
127
+ @classmethod
128
+ def _missing_(cls, value: 'int') -> 'OptionNumber':
129
+ """Lookup function used when value is not found.
130
+
131
+ Args:
132
+ value: Value to get enum item.
133
+
134
+ """
135
+ if not (isinstance(value, int) and 0 <= value <= 255):
136
+ raise ValueError('%r is not a valid %s' % (value, cls.__name__))
137
+ return extend_enum(cls, 'Unassigned_%d' % value, value)