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,80 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=line-too-long,consider-using-f-string
3
+ """IPv6 Routing Types
4
+ ========================
5
+
6
+ .. module:: pcapkit.const.ipv6.routing
7
+
8
+ This module contains the constant enumeration for **IPv6 Routing Types**,
9
+ which is automatically generated from :class:`pcapkit.vendor.ipv6.routing.Routing`.
10
+
11
+ """
12
+
13
+ from aenum import IntEnum, extend_enum
14
+
15
+ __all__ = ['Routing']
16
+
17
+
18
+ class Routing(IntEnum):
19
+ """[Routing] IPv6 Routing Types"""
20
+
21
+ #: Source Route (DEPRECATED) [:rfc:`2460`][:rfc:`5095`]
22
+ Source_Route = 0
23
+
24
+ #: Nimrod (DEPRECATED 2009-05-06)
25
+ Nimrod = 1
26
+
27
+ #: Type 2 Routing Header [:rfc:`6275`]
28
+ Type_2_Routing_Header = 2
29
+
30
+ #: RPL Source Route Header [:rfc:`6554`]
31
+ RPL_Source_Route_Header = 3
32
+
33
+ #: Segment Routing Header (SRH) [:rfc:`8754`]
34
+ Segment_Routing_Header = 4
35
+
36
+ #: CRH-16 [:rfc:`9631`]
37
+ CRH_16 = 5
38
+
39
+ #: CRH-32 [:rfc:`9631`]
40
+ CRH_32 = 6
41
+
42
+ #: RFC3692-style Experiment 1 [:rfc:`4727`]
43
+ RFC3692_style_Experiment_1 = 253
44
+
45
+ #: RFC3692-style Experiment 2 [:rfc:`4727`]
46
+ RFC3692_style_Experiment_2 = 254
47
+
48
+ #: Reserved
49
+ Reserved_255 = 255
50
+
51
+ @staticmethod
52
+ def get(key: 'int | str', default: 'int' = -1) -> 'Routing':
53
+ """Backport support for original codes.
54
+
55
+ Args:
56
+ key: Key to get enum item.
57
+ default: Default value if not found.
58
+
59
+ :meta private:
60
+ """
61
+ if isinstance(key, int):
62
+ return Routing(key)
63
+ if key not in Routing._member_map_: # pylint: disable=no-member
64
+ return extend_enum(Routing, key, default)
65
+ return Routing[key] # type: ignore[misc]
66
+
67
+ @classmethod
68
+ def _missing_(cls, value: 'int') -> 'Routing':
69
+ """Lookup function used when value is not found.
70
+
71
+ Args:
72
+ value: Value to get enum item.
73
+
74
+ """
75
+ if not (isinstance(value, int) and 0 <= value <= 255):
76
+ raise ValueError('%r is not a valid %s' % (value, cls.__name__))
77
+ if 7 <= value <= 252:
78
+ #: Unassigned
79
+ return extend_enum(cls, 'Unassigned_%d' % value, value)
80
+ return super()._missing_(value)
@@ -0,0 +1,55 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=line-too-long,consider-using-f-string
3
+ """Seed-ID Types
4
+ ===================
5
+
6
+ .. module:: pcapkit.const.ipv6.seed_id
7
+
8
+ This module contains the constant enumeration for **Seed-ID Types**,
9
+ which is automatically generated from :class:`pcapkit.vendor.ipv6.seed_id.SeedID`.
10
+
11
+ """
12
+
13
+ from aenum import IntEnum, extend_enum
14
+
15
+ __all__ = ['SeedID']
16
+
17
+
18
+ class SeedID(IntEnum):
19
+ """[SeedID] Seed-ID Types"""
20
+
21
+ IPV6_SOURCE_ADDRESS = 0b00
22
+
23
+ SEEDID_16_BIT_UNSIGNED_INTEGER = 0b01
24
+
25
+ SEEDID_64_BIT_UNSIGNED_INTEGER = 0b10
26
+
27
+ SEEDID_128_BIT_UNSIGNED_INTEGER = 0b11
28
+
29
+ @staticmethod
30
+ def get(key: 'int | str', default: 'int' = -1) -> 'SeedID':
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 SeedID(key)
41
+ if key not in SeedID._member_map_: # pylint: disable=no-member
42
+ return extend_enum(SeedID, key, default)
43
+ return SeedID[key] # type: ignore[misc]
44
+
45
+ @classmethod
46
+ def _missing_(cls, value: 'int') -> 'SeedID':
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 0b00 <= value <= 0b11):
54
+ raise ValueError('%r is not a valid %s' % (value, cls.__name__))
55
+ return extend_enum(cls, 'Unassigned_0b%s' % bin(value)[2:].zfill(2), value)
@@ -0,0 +1,51 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=line-too-long,consider-using-f-string
3
+ """Simplified Multicast Forwarding Duplicate Packet Detection (``SMF_DPD``) Options
4
+ ======================================================================================
5
+
6
+ .. module:: pcapkit.const.ipv6.smf_dpd_mode
7
+
8
+ This module contains the constant enumeration for **Simplified Multicast Forwarding Duplicate Packet Detection (``SMF_DPD``) Options**,
9
+ which is automatically generated from :class:`pcapkit.vendor.ipv6.smf_dpd_mode.SMFDPDMode`.
10
+
11
+ """
12
+
13
+ from aenum import IntEnum, extend_enum
14
+
15
+ __all__ = ['SMFDPDMode']
16
+
17
+
18
+ class SMFDPDMode(IntEnum):
19
+ """[SMFDPDMode] Simplified Multicast Forwarding Duplicate Packet Detection (``SMF_DPD``) Options"""
20
+
21
+ I_DPD = 0
22
+
23
+ H_DPD = 1
24
+
25
+ @staticmethod
26
+ def get(key: 'int | str', default: 'int' = -1) -> 'SMFDPDMode':
27
+ """Backport support for original codes.
28
+
29
+ Args:
30
+ key: Key to get enum item.
31
+ default: Default value if not found.
32
+
33
+ :meta private:
34
+ """
35
+ if isinstance(key, int):
36
+ return SMFDPDMode(key)
37
+ if key not in SMFDPDMode._member_map_: # pylint: disable=no-member
38
+ return extend_enum(SMFDPDMode, key, default)
39
+ return SMFDPDMode[key] # type: ignore[misc]
40
+
41
+ @classmethod
42
+ def _missing_(cls, value: 'int') -> 'SMFDPDMode':
43
+ """Lookup function used when value is not found.
44
+
45
+ Args:
46
+ value: Value to get enum item.
47
+
48
+ """
49
+ if not (isinstance(value, int) and 0 <= value <= 1):
50
+ raise ValueError('%r is not a valid %s' % (value, cls.__name__))
51
+ return extend_enum(cls, 'Unassigned_%d' % value, value)
@@ -0,0 +1,62 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=line-too-long,consider-using-f-string
3
+ """TaggerID Types
4
+ ====================
5
+
6
+ .. module:: pcapkit.const.ipv6.tagger_id
7
+
8
+ This module contains the constant enumeration for **TaggerID Types**,
9
+ which is automatically generated from :class:`pcapkit.vendor.ipv6.tagger_id.TaggerID`.
10
+
11
+ """
12
+
13
+ from aenum import IntEnum, extend_enum
14
+
15
+ __all__ = ['TaggerID']
16
+
17
+
18
+ class TaggerID(IntEnum):
19
+ """[TaggerID] TaggerID Types"""
20
+
21
+ #: NULL [:rfc:`6621`]
22
+ NULL = 0
23
+
24
+ #: DEFAULT [:rfc:`6621`]
25
+ DEFAULT = 1
26
+
27
+ #: IPv4 [:rfc:`6621`]
28
+ IPv4 = 2
29
+
30
+ #: IPv6 [:rfc:`6621`]
31
+ IPv6 = 3
32
+
33
+ @staticmethod
34
+ def get(key: 'int | str', default: 'int' = -1) -> 'TaggerID':
35
+ """Backport support for original codes.
36
+
37
+ Args:
38
+ key: Key to get enum item.
39
+ default: Default value if not found.
40
+
41
+ :meta private:
42
+ """
43
+ if isinstance(key, int):
44
+ return TaggerID(key)
45
+ if key not in TaggerID._member_map_: # pylint: disable=no-member
46
+ return extend_enum(TaggerID, key, default)
47
+ return TaggerID[key] # type: ignore[misc]
48
+
49
+ @classmethod
50
+ def _missing_(cls, value: 'int') -> 'TaggerID':
51
+ """Lookup function used when value is not found.
52
+
53
+ Args:
54
+ value: Value to get enum item.
55
+
56
+ """
57
+ if not (isinstance(value, int) and 0 <= value <= 7):
58
+ raise ValueError('%r is not a valid %s' % (value, cls.__name__))
59
+ if 4 <= value <= 7:
60
+ #: Unassigned
61
+ return extend_enum(cls, 'Unassigned_%d' % value, value)
62
+ return super()._missing_(value)
@@ -0,0 +1,27 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=unused-import
3
+ """:class:`~pcapkit.protocols.internet.ipx.IPX` Constant Enumerations
4
+ ========================================================================
5
+
6
+ .. module:: pcapkit.const.ipx
7
+
8
+ This module contains all constant enumerations of
9
+ :class:`~pcapkit.protocols.internet.ipx.IPX` implementations. Available
10
+ enumerations include:
11
+
12
+ .. list-table::
13
+
14
+ * - :class:`IPX_Packet <pcapkit.const.ipx.packet.Packet>`
15
+ - IPX Packet Types [*]_
16
+ * - :class:`IPX_Socket <pcapkit.const.ipx.socket.Socket>`
17
+ - IPX Socket Types [*]_
18
+
19
+ .. [*] https://en.wikipedia.org/wiki/Internetwork_Packet_Exchange#IPX_packet_structure
20
+ .. [*] https://en.wikipedia.org/wiki/Internetwork_Packet_Exchange#Socket_number
21
+
22
+ """
23
+
24
+ from pcapkit.const.ipx.packet import Packet as IPX_Packet
25
+ from pcapkit.const.ipx.socket import Socket as IPX_Socket
26
+
27
+ __all__ = ['IPX_Packet', 'IPX_Socket']
@@ -0,0 +1,72 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=line-too-long,consider-using-f-string
3
+ """IPX Packet Types
4
+ ======================
5
+
6
+ .. module:: pcapkit.const.ipx.packet
7
+
8
+ This module contains the constant enumeration for **IPX Packet Types**,
9
+ which is automatically generated from :class:`pcapkit.vendor.ipx.packet.Packet`.
10
+
11
+ """
12
+
13
+ from aenum import IntEnum, extend_enum
14
+
15
+ __all__ = ['Packet']
16
+
17
+
18
+ class Packet(IntEnum):
19
+ """[Packet] IPX Packet Types"""
20
+
21
+ #: Unknown
22
+ Unknown = 0
23
+
24
+ #: ``RIP``, Routing Information Protocol ([:rfc:`1582`], [:rfc:`2091`])
25
+ RIP = 1
26
+
27
+ #: Echo Packet
28
+ Echo_Packet = 2
29
+
30
+ #: Error Packet
31
+ Error_Packet = 3
32
+
33
+ #: ``PEP``, Packet Exchange Protocol, used for SAP (Service Advertising
34
+ #: Protocol)
35
+ PEP = 4
36
+
37
+ #: ``SPX``, Sequenced Packet Exchange
38
+ SPX = 5
39
+
40
+ #: ``NCP``, NetWare Core Protocol
41
+ NCP = 17
42
+
43
+ #: Broadcast[4]
44
+ Broadcast_4 = 20
45
+
46
+ @staticmethod
47
+ def get(key: 'int | str', default: 'int' = -1) -> 'Packet':
48
+ """Backport support for original codes.
49
+
50
+ Args:
51
+ key: Key to get enum item.
52
+ default: Default value if not found.
53
+
54
+ :meta private:
55
+ """
56
+ if isinstance(key, int):
57
+ return Packet(key)
58
+ if key not in Packet._member_map_: # pylint: disable=no-member
59
+ return extend_enum(Packet, key, default)
60
+ return Packet[key] # type: ignore[misc]
61
+
62
+ @classmethod
63
+ def _missing_(cls, value: 'int') -> 'Packet':
64
+ """Lookup function used when value is not found.
65
+
66
+ Args:
67
+ value: Value to get enum item.
68
+
69
+ """
70
+ if not (isinstance(value, int) and 0 <= value <= 255):
71
+ raise ValueError('%r is not a valid %s' % (value, cls.__name__))
72
+ return extend_enum(cls, 'Unassigned_%d' % value, value)
@@ -0,0 +1,104 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=line-too-long,consider-using-f-string
3
+ """Socket Types
4
+ ==================
5
+
6
+ .. module:: pcapkit.const.ipx.socket
7
+
8
+ This module contains the constant enumeration for **Socket Types**,
9
+ which is automatically generated from :class:`pcapkit.vendor.ipx.socket.Socket`.
10
+
11
+ """
12
+
13
+ from aenum import IntEnum, extend_enum
14
+
15
+ __all__ = ['Socket']
16
+
17
+
18
+ class Socket(IntEnum):
19
+ """[Socket] Socket Types"""
20
+
21
+ #: Routing Information Packet
22
+ Routing_Information_Packet = 0x0001
23
+
24
+ #: Echo Protocol Packet
25
+ Echo_Protocol_Packet = 0x0002
26
+
27
+ #: Error Handling Packet
28
+ Error_Handling_Packet = 0x0003
29
+
30
+ #: NetWare Core Protocol, NCP – used by Novell NetWare servers
31
+ NetWare_Core_Protocol = 0x0451
32
+
33
+ #: Service Advertising Protocol, SAP
34
+ Service_Advertising_Protocol = 0x0452
35
+
36
+ #: Routing Information Protocol, RIP
37
+ Routing_Information_Protocol = 0x0453
38
+
39
+ #: NetBIOS
40
+ NetBIOS = 0x0455
41
+
42
+ #: Diagnostic Packet
43
+ Diagnostic_Packet = 0x0456
44
+
45
+ #: Serialization Packet, used for NCP as well
46
+ Serialization_Packet = 0x0457
47
+
48
+ #: Used by Novell NetWare Client
49
+ Used_by_Novell_NetWare_Client = 0x4003
50
+
51
+ #: LLC [ 4 ]
52
+ LLC_4 = 0x8060
53
+
54
+ #: TCP over IPXF
55
+ TCP_over_IPXF = 0x9091
56
+
57
+ #: UDP over IPXF
58
+ UDP_over_IPXF = 0x9092
59
+
60
+ #: IPXF, IPX Fragmentation Protocol
61
+ IPXF = 0x9093
62
+
63
+ @staticmethod
64
+ def get(key: 'int | str', default: 'int' = -1) -> 'Socket':
65
+ """Backport support for original codes.
66
+
67
+ Args:
68
+ key: Key to get enum item.
69
+ default: Default value if not found.
70
+
71
+ :meta private:
72
+ """
73
+ if isinstance(key, int):
74
+ return Socket(key)
75
+ if key not in Socket._member_map_: # pylint: disable=no-member
76
+ return extend_enum(Socket, key, default)
77
+ return Socket[key] # type: ignore[misc]
78
+
79
+ @classmethod
80
+ def _missing_(cls, value: 'int') -> 'Socket':
81
+ """Lookup function used when value is not found.
82
+
83
+ Args:
84
+ value: Value to get enum item.
85
+
86
+ """
87
+ if not (isinstance(value, int) and 0x0000 <= value <= 0xFFFF):
88
+ raise ValueError('%r is not a valid %s' % (value, cls.__name__))
89
+ if 0x0001 <= value <= 0x0BB8:
90
+ #: Registered by Xerox
91
+ return extend_enum(cls, 'Registered by Xerox_0x%s' % hex(value)[2:].upper().zfill(4), value)
92
+ if 0x0020 <= value <= 0x003F:
93
+ #: Experimental
94
+ return extend_enum(cls, 'Experimental_0x%s' % hex(value)[2:].upper().zfill(4), value)
95
+ if 0x0BB9 <= value <= 0xFFFF:
96
+ #: Dynamically Assigned
97
+ return extend_enum(cls, 'Dynamically Assigned_0x%s' % hex(value)[2:].upper().zfill(4), value)
98
+ if 0x4000 <= value <= 0x4FFF:
99
+ #: Dynamically Assigned Socket Numbers
100
+ return extend_enum(cls, 'Dynamically Assigned Socket Numbers_0x%s' % hex(value)[2:].upper().zfill(4), value)
101
+ if 0x8000 <= value <= 0xFFFF:
102
+ #: Statically Assigned Socket Numbers
103
+ return extend_enum(cls, 'Statically Assigned Socket Numbers_0x%s' % hex(value)[2:].upper().zfill(4), value)
104
+ return super()._missing_(value)
@@ -0,0 +1,21 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=unused-import
3
+ """:class:`~pcapkit.protocols.link.l2tp.L2TP` Constant Enumerations
4
+ ======================================================================
5
+
6
+ .. module:: pcapkit.const.l2tp
7
+
8
+ This module contains all constant enumerations of
9
+ :class:`~pcapkit.protocols.link.l2tp.L2TP` implementations. Available
10
+ enumerations include:
11
+
12
+ .. list-table::
13
+
14
+ * - :class:`L2TP_Type <pcapkit.const.l2tp.type.Type>`
15
+ - L2TP Types
16
+
17
+ """
18
+
19
+ from pcapkit.const.l2tp.type import Type as L2TP_Type
20
+
21
+ __all__ = ['L2TP_Type']
@@ -0,0 +1,51 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=line-too-long,consider-using-f-string
3
+ """L2TP Type
4
+ ===============
5
+
6
+ .. module:: pcapkit.const.l2tp.type
7
+
8
+ This module contains the constant enumeration for **L2TP Type**,
9
+ which is automatically generated from :class:`pcapkit.vendor.l2tp.type.Type`.
10
+
11
+ """
12
+
13
+ from aenum import IntEnum, extend_enum
14
+
15
+ __all__ = ['Type']
16
+
17
+
18
+ class Type(IntEnum):
19
+ """[Type] L2TP Type"""
20
+
21
+ Control = 0
22
+
23
+ Data = 1
24
+
25
+ @staticmethod
26
+ def get(key: 'int | str', default: 'int' = -1) -> 'Type':
27
+ """Backport support for original codes.
28
+
29
+ Args:
30
+ key: Key to get enum item.
31
+ default: Default value if not found.
32
+
33
+ :meta private:
34
+ """
35
+ if isinstance(key, int):
36
+ return Type(key)
37
+ if key not in Type._member_map_: # pylint: disable=no-member
38
+ return extend_enum(Type, key, default)
39
+ return Type[key] # type: ignore[misc]
40
+
41
+ @classmethod
42
+ def _missing_(cls, value: 'int') -> 'Type':
43
+ """Lookup function used when value is not found.
44
+
45
+ Args:
46
+ value: Value to get enum item.
47
+
48
+ """
49
+ if not (isinstance(value, int) and 0 <= value <= 1):
50
+ raise ValueError('%r is not a valid %s' % (value, cls.__name__))
51
+ return extend_enum(cls, 'Unassigned_%d' % value, value)