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,368 @@
1
+ # -*- coding: utf-8 -*-
2
+ """data model for IPv6 Destination Options protocol"""
3
+
4
+ from typing import TYPE_CHECKING
5
+
6
+ from pcapkit.corekit.infoclass import info_final
7
+ from pcapkit.protocols.data.data import Data
8
+ from pcapkit.protocols.data.protocol import Protocol
9
+
10
+ if TYPE_CHECKING:
11
+ from datetime import timedelta
12
+ from ipaddress import IPv4Address, IPv6Address
13
+ from typing import Optional
14
+
15
+ from pcapkit.const.ipv6.option import Option as Enum_Option
16
+ from pcapkit.const.ipv6.option_action import OptionAction
17
+ from pcapkit.const.ipv6.qs_function import QSFunction
18
+ from pcapkit.const.ipv6.router_alert import RouterAlert
19
+ from pcapkit.const.ipv6.seed_id import SeedID
20
+ from pcapkit.const.ipv6.smf_dpd_mode import SMFDPDMode
21
+ from pcapkit.const.ipv6.tagger_id import TaggerID
22
+ from pcapkit.const.reg.transtype import TransType
23
+ from pcapkit.corekit.multidict import OrderedMultiDict
24
+
25
+ __all__ = [
26
+ 'IPv6_Opts',
27
+
28
+ 'RPLFlags', 'MPLFlags', 'DFFFlags',
29
+
30
+ 'SMFDPDOption', 'QuickStartOption',
31
+ 'UnassignedOption', 'PadOption', 'TunnelEncapsulationLimitOption',
32
+ 'RouterAlertOption', 'CALIPSOOption', 'SMFIdentificationBasedDPDOption',
33
+ 'SMFHashBasedDPDOption', 'PDMOption', 'QuickStartRequestOption',
34
+ 'QuickStartReportOption', 'RPLOption', 'MPLOption', 'ILNPOption',
35
+ 'LineIdentificationOption', 'JumboPayloadOption', 'HomeAddressOption',
36
+ 'IPDFFOption',
37
+ ]
38
+
39
+
40
+ class Option(Data):
41
+ """Data model for IPv6-Opts option data."""
42
+
43
+ #: Option type.
44
+ type: 'Enum_Option'
45
+ #: Unknown option cation.
46
+ action: 'OptionAction'
47
+ #: Change flag.
48
+ change: 'bool'
49
+ #: Content length.
50
+ length: 'int'
51
+
52
+
53
+ @info_final
54
+ class IPv6_Opts(Protocol):
55
+ """Data model for IPv6-Opts protocol."""
56
+
57
+ #: Next header.
58
+ next: 'TransType'
59
+ #: Header extension length.
60
+ length: 'int'
61
+ #: IPv6-Opts options.
62
+ options: 'OrderedMultiDict[Enum_Option, Option]'
63
+
64
+ if TYPE_CHECKING:
65
+ def __init__(self, next: 'TransType', length: 'int',
66
+ options: 'OrderedMultiDict[Enum_Option, Option]') -> 'None': ... # pylint: disable=super-init-not-called,unused-argument,redefined-builtin,multiple-statements,line-too-long
67
+
68
+
69
+ @info_final
70
+ class UnassignedOption(Option):
71
+ """Data model for IPv6-Opts unassigned option."""
72
+
73
+ #: Option data.
74
+ data: 'bytes'
75
+
76
+ if TYPE_CHECKING:
77
+ def __init__(self, type: 'Enum_Option', action: 'int', change: 'bool', length: 'int',
78
+ data: 'bytes') -> 'None': ... # pylint: disable=super-init-not-called,unused-argument,redefined-builtin,multiple-statements,line-too-long
79
+
80
+
81
+ @info_final
82
+ class PadOption(Option):
83
+ """Data model for IPv6-Opts padding options."""
84
+
85
+ if TYPE_CHECKING:
86
+ def __init__(self, type: 'Enum_Option', action: 'int', change: 'bool',
87
+ length: 'int') -> 'None': ... # pylint: disable=super-init-not-called,unused-argument,redefined-builtin,multiple-statements,line-too-long
88
+
89
+
90
+ @info_final
91
+ class TunnelEncapsulationLimitOption(Option):
92
+ """Data model for IPv6-Opts tunnel encapsulation limit option."""
93
+
94
+ #: Tunnel encapsulation limit.
95
+ limit: 'int'
96
+
97
+ if TYPE_CHECKING:
98
+ def __init__(self, type: 'Enum_Option', action: 'int', change: 'bool', length: 'int',
99
+ limit: 'int') -> 'None': ... # pylint: disable=super-init-not-called,unused-argument,redefined-builtin,multiple-statements,line-too-long
100
+
101
+
102
+ @info_final
103
+ class RouterAlertOption(Option):
104
+ """Data model for IPv6-Opts router alter option."""
105
+
106
+ #: Router alter value.
107
+ value: 'RouterAlert'
108
+
109
+ if TYPE_CHECKING:
110
+ def __init__(self, type: 'Enum_Option', action: 'int', change: 'bool', length: 'int',
111
+ value: 'RouterAlert') -> 'None': ... # pylint: disable=super-init-not-called,unused-argument,redefined-builtin,multiple-statements,line-too-long
112
+
113
+
114
+ @info_final
115
+ class CALIPSOOption(Option):
116
+ """Data model for IPv6-Opts Common Architecture Label IPv6 Security Option (CALIPSO) option."""
117
+
118
+ #: CALIPSO domain of interpretation.
119
+ domain: 'int'
120
+ #: Compartment length.
121
+ cmpt_len: 'int'
122
+ #: Sensitivity level.
123
+ level: 'int'
124
+ #: Checksum.
125
+ checksum: 'bytes'
126
+
127
+ if TYPE_CHECKING:
128
+ #: Compartment bitmap.
129
+ cmpt_bitmap: 'bytes'
130
+
131
+ def __init__(self, type: 'Enum_Option', action: 'int', change: 'bool', length: 'int', domain: 'int', cmpt_len: 'int', level: 'int',
132
+ checksum: 'bytes') -> 'None': ... # pylint: disable=super-init-not-called,unused-argument,redefined-builtin,multiple-statements,line-too-long
133
+
134
+
135
+ class SMFDPDOption(Option):
136
+ """Data model for IPv6-Opts Simplified Multicast Forwarding Duplicate Packet Detection (``SMF_DPD``) option."""
137
+
138
+ #: DPD type.
139
+ dpd_type: 'SMFDPDMode'
140
+
141
+
142
+ @info_final
143
+ class SMFIdentificationBasedDPDOption(SMFDPDOption):
144
+ """Data model for IPv6-Opts **I-DPD** (Identification-Based DPD) option."""
145
+
146
+ #: TaggerID type.
147
+ tid_type: 'TaggerID'
148
+ #: TaggerID length.
149
+ tid_len: 'int'
150
+ #: TaggerID.
151
+ tid: 'Optional[bytes | IPv4Address | IPv6Address]'
152
+ #: Identifier.
153
+ id: 'bytes'
154
+
155
+ if TYPE_CHECKING:
156
+ def __init__(self, type: 'Enum_Option', action: 'int', change: 'bool', length: 'int', dpd_type: 'SMFDPDMode', tid_type: 'TaggerID', tid_len: 'int',
157
+ tid: 'Optional[bytes | IPv4Address | IPv6Address]', id: 'bytes') -> 'None': ... # pylint: disable=super-init-not-called,unused-argument,redefined-builtin,multiple-statements,line-too-long
158
+
159
+
160
+ @info_final
161
+ class SMFHashBasedDPDOption(SMFDPDOption):
162
+ """Data model for IPv6-Opts **H-DPD** (Hash-Based DPD) option."""
163
+
164
+ #: Hash assist value.
165
+ hav: 'bytes'
166
+
167
+ if TYPE_CHECKING:
168
+ def __init__(self, type: 'Enum_Option', action: 'int', change: 'bool', length: 'int', dpd_type: 'SMFDPDMode',
169
+ hav: 'bytes') -> 'None': ... # pylint: disable=super-init-not-called,unused-argument,redefined-builtin,multiple-statements,line-too-long
170
+
171
+
172
+ @info_final
173
+ class PDMOption(Option):
174
+ """Data model for IPv6-Opts Performance Diagnostic Metrics (PDM) option."""
175
+
176
+ #: Scale delta time last received.
177
+ scaledtlr: 'int'
178
+ #: Scale delta time last sent.
179
+ scaledtls: 'int'
180
+ #: Packet sequence number this packet.
181
+ psntp: 'int'
182
+ #: Packet sequence number last received.
183
+ psnlr: 'int'
184
+ #: Delta time last received (in attoseconds).
185
+ deltatlr: 'int'
186
+ #: Delta time last sent (in attoseconds).
187
+ deltatls: 'int'
188
+
189
+ if TYPE_CHECKING:
190
+ def __init__(self, type: 'Enum_Option', action: 'int', change: 'bool', length: 'int', scaledtlr: 'int', scaledtls: 'int', psntp: 'int', psnlr: 'int',
191
+ deltatlr: 'int', deltatls: 'int') -> 'None': ... # pylint: disable=super-init-not-called,unused-argument,redefined-builtin,multiple-statements,line-too-long
192
+
193
+
194
+ class QuickStartOption(Option):
195
+ """Data model for IPv6-Opts Quick Start option."""
196
+
197
+ #: QS function.
198
+ func: 'QSFunction'
199
+ #: Rate request/report.
200
+ rate: 'int'
201
+
202
+
203
+ @info_final
204
+ class QuickStartRequestOption(QuickStartOption):
205
+ """Data model for IPv6-Opts Quick Start request option."""
206
+
207
+ #: TTL.
208
+ ttl: 'timedelta'
209
+ #: Nonce.
210
+ nonce: 'int'
211
+
212
+ if TYPE_CHECKING:
213
+ def __init__(self, type: 'Enum_Option', action: 'int', change: 'bool', length: 'int', func: 'QSFunction', rate: 'int', ttl: 'timedelta',
214
+ nonce: 'int') -> 'None': ... # pylint: disable=super-init-not-called,unused-argument,redefined-builtin,multiple-statements,line-too-long
215
+
216
+
217
+ @info_final
218
+ class QuickStartReportOption(QuickStartOption):
219
+ """Data model for IPv6-Opts Quick Start report of approved rate option."""
220
+
221
+ #: Nonce.
222
+ nonce: 'int'
223
+
224
+ if TYPE_CHECKING:
225
+ def __init__(self, type: 'Enum_Option', action: 'int', change: 'bool', length: 'int', func: 'QSFunction', rate: 'int', nonce: 'int') -> 'None':
226
+ ...
227
+
228
+
229
+ @info_final
230
+ class RPLFlags(Data):
231
+ """Data model for IPv6-Opts RPL option flags fields."""
232
+
233
+ #: Down flag.
234
+ down: 'bool'
235
+ #: Rank error flag.
236
+ rank_err: 'bool'
237
+ #: Forwarding error flag.
238
+ fwd_err: 'bool'
239
+
240
+ if TYPE_CHECKING:
241
+ def __init__(self, down: 'bool', rank_err: 'bool',
242
+ fwd_err: 'bool') -> 'None': ... # pylint: disable=super-init-not-called,unused-argument,redefined-builtin,multiple-statements,line-too-long
243
+
244
+
245
+ @info_final
246
+ class RPLOption(Option):
247
+ """Data model for IPv6-Opts Routing Protocol for Low-Power and Lossy Networks (RPL) option."""
248
+
249
+ #: Flags.
250
+ flags: 'RPLFlags'
251
+ #: RPL instance ID.
252
+ id: 'int'
253
+ #: Sender rank.
254
+ rank: ' int'
255
+
256
+ if TYPE_CHECKING:
257
+ def __init__(self, type: 'Enum_Option', action: 'int', change: 'bool', length: 'int', flags: 'RPLFlags', id: 'int',
258
+ rank: 'int') -> 'None': ... # pylint: disable=super-init-not-called,unused-argument,redefined-builtin,multiple-statements,line-too-long
259
+
260
+
261
+ @info_final
262
+ class MPLFlags(Data):
263
+ """Data model for IPv6-Opts MPL option flags fields."""
264
+
265
+ #: Max flag.
266
+ max: 'bool'
267
+ #: Non-conformation flag.
268
+ drop: 'bool'
269
+
270
+ if TYPE_CHECKING:
271
+ def __init__(self, max: 'bool', drop: 'bool') -> 'None': ... # pylint: disable=super-init-not-called,unused-argument,redefined-builtin,multiple-statements,line-too-long
272
+
273
+
274
+ @info_final
275
+ class MPLOption(Option):
276
+ """Data model for IPv6-Opts Multicast Protocol for Low-Power and Lossy Networks (MPL) option."""
277
+
278
+ #: Seed length.
279
+ seed_type: 'SeedID'
280
+ #: Flags.
281
+ flags: 'MPLFlags'
282
+ #: Sequence number.
283
+ seq: 'int'
284
+ #: Seed ID.
285
+ seed_id: 'Optional[int]'
286
+
287
+ if TYPE_CHECKING:
288
+ def __init__(self, type: 'Enum_Option', action: 'int', change: 'bool', length: 'int', seed_type: 'int', flags: 'MPLFlags', seq: 'int',
289
+ seed_id: 'Optional[int]') -> 'None': ... # pylint: disable=super-init-not-called,unused-argument,redefined-builtin,multiple-statements,line-too-long
290
+
291
+
292
+ @info_final
293
+ class ILNPOption(Option):
294
+ """Data model for IPv6-Opts Identifier-Locator Network Protocol (ILNP) Nonce option."""
295
+
296
+ #: Nonce value.
297
+ nonce: 'int'
298
+
299
+ if TYPE_CHECKING:
300
+ def __init__(self, type: 'Enum_Option', action: 'int', change: 'bool', length: 'int',
301
+ nonce: 'int') -> 'None': ... # pylint: disable=super-init-not-called,unused-argument,redefined-builtin,multiple-statements,line-too-long
302
+
303
+
304
+ @info_final
305
+ class LineIdentificationOption(Option):
306
+ """Data model for IPv6-Opts Line-Identification option."""
307
+
308
+ #: Line ID length.
309
+ line_id_len: 'int'
310
+ #: Line ID.
311
+ line_id: 'bytes'
312
+
313
+ if TYPE_CHECKING:
314
+ def __init__(self, type: 'Enum_Option', action: 'int', change: 'bool', length: 'int', line_id_len: 'int',
315
+ line_id: 'bytes') -> 'None': ... # pylint: disable=super-init-not-called,unused-argument,redefined-builtin,multiple-statements,line-too-long
316
+
317
+
318
+ @info_final
319
+ class JumboPayloadOption(Option):
320
+ """Data model for Jumbo Payload option."""
321
+
322
+ #: Jumbo payload length.
323
+ jumbo_len: 'int'
324
+
325
+ if TYPE_CHECKING:
326
+ def __init__(self, type: 'Enum_Option', action: 'int', change: 'bool', length: 'int',
327
+ jumbo_len: 'int') -> 'None': ... # pylint: disable=super-init-not-called,unused-argument,redefined-builtin,multiple-statements,line-too-long
328
+
329
+
330
+ @info_final
331
+ class HomeAddressOption(Option):
332
+ """Data model for IPv6-Opts Home Address option."""
333
+
334
+ #: Home address.
335
+ address: 'IPv6Address'
336
+
337
+ if TYPE_CHECKING:
338
+ def __init__(self, type: 'Enum_Option', action: 'int', change: 'bool', length: 'int',
339
+ address: 'IPv6Address') -> 'None': ... # pylint: disable=super-init-not-called,unused-argument,redefined-builtin,multiple-statements,line-too-long
340
+
341
+
342
+ @info_final
343
+ class DFFFlags(Data):
344
+ """Data model for IPv6-Opts ``IP_DFF`` option flags."""
345
+
346
+ #: Duplicate flag.
347
+ dup: 'bool'
348
+ #: Return flag.
349
+ ret: 'bool'
350
+
351
+ if TYPE_CHECKING:
352
+ def __init__(self, dup: 'bool', ret: 'bool') -> 'None': ... # pylint: disable=super-init-not-called,unused-argument,redefined-builtin,multiple-statements,line-too-long
353
+
354
+
355
+ @info_final
356
+ class IPDFFOption(Option):
357
+ """Data model for IPv6-Opts Depth-First Forwarding (``IP_DFF``) option."""
358
+
359
+ #: Version.
360
+ version: 'int'
361
+ # :Flags.
362
+ flags: 'DFFFlags'
363
+ #: Sequence number.
364
+ seq: 'int'
365
+
366
+ if TYPE_CHECKING:
367
+ def __init__(self, type: 'Enum_Option', action: 'int', change: 'bool', length: 'int', version: 'int', flags: 'DFFFlags',
368
+ seq: 'int') -> 'None': ... # pylint: disable=super-init-not-called,unused-argument,redefined-builtin,multiple-statements,line-too-long
@@ -0,0 +1,86 @@
1
+ # -*- coding: utf-8 -*-
2
+ """data model for IPv6 Routing Header"""
3
+
4
+ from typing import TYPE_CHECKING
5
+
6
+ from pcapkit.corekit.infoclass import info_final
7
+ from pcapkit.protocols.data.protocol import Protocol
8
+
9
+ if TYPE_CHECKING:
10
+ from ipaddress import IPv6Address
11
+
12
+ from pcapkit.const.ipv6.routing import Routing
13
+ from pcapkit.const.reg.transtype import TransType
14
+
15
+ __all__ = [
16
+ 'IPv6_Route',
17
+
18
+ 'UnknownType', 'SourceRoute', 'Type2', 'RPL',
19
+ ]
20
+
21
+
22
+ class IPv6_Route(Protocol):
23
+ """Data model for IPv6-Route protocol."""
24
+
25
+ #: Next header.
26
+ next: 'TransType'
27
+ #: Header extension length.
28
+ length: 'int'
29
+ #: Routing type.
30
+ type: 'Routing'
31
+ #: Segments left.
32
+ seg_left: 'int'
33
+
34
+
35
+ @info_final
36
+ class UnknownType(IPv6_Route):
37
+ """Data model for IPv6-Route unknown type."""
38
+
39
+ #: Data.
40
+ data: 'bytes'
41
+
42
+ if TYPE_CHECKING:
43
+ def __init__(self, next: 'TransType', length: 'int', type: 'Routing', seg_left: 'int',
44
+ data: 'bytes') -> 'None': ... # pylint: disable=unused-argument,multiple-statements,super-init-not-called,redefined-builtin,line-too-long
45
+
46
+
47
+ @info_final
48
+ class SourceRoute(IPv6_Route):
49
+ """Data model for IPv6-Route Source Route data type."""
50
+
51
+ #: Source addresses.
52
+ ip: 'tuple[IPv6Address, ...]'
53
+
54
+ if TYPE_CHECKING:
55
+ def __init__(self, next: 'TransType', length: 'int', type: 'Routing', seg_left: 'int',
56
+ ip: 'tuple[IPv6Address, ...]') -> 'None': ... # pylint: disable=unused-argument,multiple-statements,super-init-not-called,redefined-builtin,line-too-long
57
+
58
+
59
+ @info_final
60
+ class Type2(IPv6_Route):
61
+ """Data model for IPv6-Route Type 2 data type."""
62
+
63
+ #: Address.
64
+ ip: 'IPv6Address'
65
+
66
+ if TYPE_CHECKING:
67
+ def __init__(self, next: 'TransType', length: 'int', type: 'Routing', seg_left: 'int',
68
+ ip: 'IPv6Address') -> 'None': ... # pylint: disable=unused-argument,multiple-statements,super-init-not-called,redefined-builtin,line-too-long
69
+
70
+
71
+ @info_final
72
+ class RPL(IPv6_Route):
73
+ """Data model for RPL Source data type."""
74
+
75
+ #: CmprI.
76
+ cmpr_i: 'int'
77
+ #: CmprE.
78
+ cmpr_e: 'int'
79
+ #: Pad.
80
+ pad: 'int'
81
+ #: Addresses.
82
+ ip: 'tuple[IPv6Address | bytes, ...]'
83
+
84
+ if TYPE_CHECKING:
85
+ def __init__(self, next: 'TransType', length: 'int', type: 'Routing', seg_left: 'int',
86
+ cmpr_i: 'int', cmpr_e: 'int', pad: 'int', ip: 'tuple[IPv6Address | bytes, ...]') -> 'None': ... # pylint: disable=unused-argument,multiple-statements,super-init-not-called,redefined-builtin,line-too-long
@@ -0,0 +1,56 @@
1
+ # -*- coding: utf-8 -*-
2
+ """data model for internetwork packet exchange"""
3
+
4
+ from typing import TYPE_CHECKING
5
+
6
+ from pcapkit.corekit.infoclass import info_final
7
+ from pcapkit.protocols.data.data import Data
8
+ from pcapkit.protocols.data.protocol import Protocol
9
+
10
+ if TYPE_CHECKING:
11
+ from pcapkit.const.ipx.packet import Packet
12
+ from pcapkit.const.ipx.socket import Socket
13
+
14
+ __all__ = [
15
+ 'IPX',
16
+
17
+ 'Address',
18
+ ]
19
+
20
+
21
+ @info_final
22
+ class Address(Data):
23
+ """Data model for IPX address."""
24
+
25
+ #: Network number (``:`` separated).
26
+ network: 'str'
27
+ #: Node number (``-`` separated).
28
+ node: 'str'
29
+ #: Socket number (``:`` separated).
30
+ socket: 'Socket'
31
+ #: Full address (``:`` separated).
32
+ addr: 'str'
33
+
34
+ if TYPE_CHECKING:
35
+ def __init__(self, network: 'str', node: 'str', socket: 'Socket', addr: 'str') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements
36
+
37
+
38
+ @info_final
39
+ class IPX(Protocol):
40
+ """Data model for Internetwork Packet Exchange."""
41
+
42
+ #: Checksum.
43
+ chksum: 'bytes'
44
+ #: Packet length (header includes).
45
+ len: 'int'
46
+ #: Transport control (hop count).
47
+ count: 'int'
48
+ #: Packet type.
49
+ type: 'Packet'
50
+ #: Destination Address.
51
+ dst: 'Address'
52
+ #: Source Address.
53
+ src: 'Address'
54
+
55
+ if TYPE_CHECKING:
56
+ def __init__(self, chksum: 'bytes', len: 'int', count: 'int', type: 'Packet', dst: 'Address', src: 'Address') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,redefined-builtin,line-too-long