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,25 @@
1
+ # -*- coding: utf-8 -*-
2
+ """data models for raw protocol data"""
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 typing import Optional
11
+
12
+ __all__ = ['Raw']
13
+
14
+
15
+ @info_final
16
+ class Raw(Protocol):
17
+ """Raw packet is an unknown protocol."""
18
+
19
+ #: Original enumeration of this protocol.
20
+ protocol: 'Optional[int]'
21
+ #: error instance when parsing packet data
22
+ error: 'Optional[Exception]'
23
+
24
+ if TYPE_CHECKING:
25
+ def __init__(self, protocol: 'Optional[int]', error: 'Optional[Exception]') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements
@@ -0,0 +1,32 @@
1
+ # -*- coding: utf-8 -*-
2
+ """data models for root 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
+
9
+ __all__ = [
10
+ 'Packet',
11
+ ]
12
+
13
+
14
+ class Protocol(Data):
15
+ """Root protocol."""
16
+
17
+ if TYPE_CHECKING:
18
+ #: Packet payload.
19
+ packet: 'bytes'
20
+
21
+
22
+ @info_final
23
+ class Packet(Data):
24
+ """Header and payload data."""
25
+
26
+ #: packet header
27
+ header: 'bytes'
28
+ #: packet payload
29
+ payload: 'bytes'
30
+
31
+ if TYPE_CHECKING:
32
+ def __init__(self, header: 'bytes', payload: 'bytes') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements
@@ -0,0 +1,71 @@
1
+ # -*- coding: utf-8 -*-
2
+ """data models for transport layer protocols"""
3
+
4
+ # Transmission Control Protocol
5
+ from pcapkit.protocols.data.transport.tcp import CC as TCP_CC
6
+ from pcapkit.protocols.data.transport.tcp import MPTCP as TCP_MPTCP
7
+ from pcapkit.protocols.data.transport.tcp import MPTCPDSS as TCP_MPTCPDSS
8
+ from pcapkit.protocols.data.transport.tcp import SACK as TCP_SACK
9
+ from pcapkit.protocols.data.transport.tcp import TCP
10
+ from pcapkit.protocols.data.transport.tcp import AlternateChecksumData as TCP_AlternateChecksumData
11
+ from pcapkit.protocols.data.transport.tcp import \
12
+ AlternateChecksumRequest as TCP_AlternateChecksumRequest
13
+ from pcapkit.protocols.data.transport.tcp import Authentication as TCP_Authentication
14
+ from pcapkit.protocols.data.transport.tcp import CCEcho as TCP_CCEcho
15
+ from pcapkit.protocols.data.transport.tcp import CCNew as TCP_CCNew
16
+ from pcapkit.protocols.data.transport.tcp import Echo as TCP_Echo
17
+ from pcapkit.protocols.data.transport.tcp import EchoReply as TCP_EchoReply
18
+ from pcapkit.protocols.data.transport.tcp import EndOfOptionList as TCP_EndOfOptionList
19
+ from pcapkit.protocols.data.transport.tcp import FastOpenCookie as TCP_FastOpenCookie
20
+ from pcapkit.protocols.data.transport.tcp import Flags as TCP_Flags
21
+ from pcapkit.protocols.data.transport.tcp import MaximumSegmentSize as TCP_MaximumSegmentSize
22
+ from pcapkit.protocols.data.transport.tcp import MD5Signature as TCP_MD5Signature
23
+ from pcapkit.protocols.data.transport.tcp import MPTCPAddAddress as TCP_MPTCPAddAddress
24
+ from pcapkit.protocols.data.transport.tcp import MPTCPCapable as TCP_MPTCPCapable
25
+ from pcapkit.protocols.data.transport.tcp import MPTCPCapableFlag as TCP_MPTCPCapableFlag
26
+ from pcapkit.protocols.data.transport.tcp import MPTCPFallback as TCP_MPTCPFallback
27
+ from pcapkit.protocols.data.transport.tcp import MPTCPFastclose as TCP_MPTCPFastclose
28
+ from pcapkit.protocols.data.transport.tcp import MPTCPJoin as TCP_MPTCPJoin
29
+ from pcapkit.protocols.data.transport.tcp import MPTCPJoinACK as TCP_MPTCPJoinACK
30
+ from pcapkit.protocols.data.transport.tcp import MPTCPJoinSYN as TCP_MPTCPJoinSYN
31
+ from pcapkit.protocols.data.transport.tcp import MPTCPJoinSYNACK as TCP_MPTCPJoinSYNACK
32
+ from pcapkit.protocols.data.transport.tcp import MPTCPPriority as TCP_MPTCPPriority
33
+ from pcapkit.protocols.data.transport.tcp import MPTCPRemoveAddress as TCP_MPTCPRemoveAddress
34
+ from pcapkit.protocols.data.transport.tcp import MPTCPUnknown as TCP_MPTCPUnknown
35
+ from pcapkit.protocols.data.transport.tcp import NoOperation as TCP_NoOperation
36
+ from pcapkit.protocols.data.transport.tcp import Option as TCP_Option
37
+ from pcapkit.protocols.data.transport.tcp import \
38
+ PartialOrderConnectionPermitted as TCP_PartialOrderConnectionPermitted
39
+ from pcapkit.protocols.data.transport.tcp import \
40
+ PartialOrderServiceProfile as TCP_PartialOrderServiceProfile
41
+ from pcapkit.protocols.data.transport.tcp import QuickStartResponse as TCP_QuickStartResponse
42
+ from pcapkit.protocols.data.transport.tcp import SACKBlock as TCP_SACKBlock
43
+ from pcapkit.protocols.data.transport.tcp import SACKPermitted as TCP_SACKPermitted
44
+ from pcapkit.protocols.data.transport.tcp import Timestamps as TCP_Timestamps
45
+ from pcapkit.protocols.data.transport.tcp import UnassignedOption as TCP_UnassignedOption
46
+ from pcapkit.protocols.data.transport.tcp import UserTimeout as TCP_UserTimeout
47
+ from pcapkit.protocols.data.transport.tcp import WindowScale as TCP_WindowScale
48
+
49
+ # User Datagram Protocol
50
+ from pcapkit.protocols.data.transport.udp import UDP
51
+
52
+ __all__ = [
53
+ # Transmission Control Protocol
54
+ 'TCP',
55
+ 'TCP_Flags', 'TCP_SACKBlock',
56
+ 'TCP_Option',
57
+ 'TCP_UnassignedOption', 'TCP_EndOfOptionList', 'TCP_NoOperation', 'TCP_MaximumSegmentSize', 'TCP_WindowScale',
58
+ 'TCP_SACKPermitted', 'TCP_SACK', 'TCP_Echo', 'TCP_EchoReply', 'TCP_Timestamps', 'TCP_PartialOrderConnectionPermitted', # pylint: disable=line-too-long
59
+ 'TCP_PartialOrderServiceProfile', 'TCP_CC', 'TCP_CCNew', 'TCP_CCEcho', 'TCP_AlternateChecksumRequest',
60
+ 'TCP_AlternateChecksumData', 'TCP_MD5Signature', 'TCP_QuickStartResponse', 'TCP_UserTimeout',
61
+ 'TCP_Authentication', 'TCP_FastOpenCookie',
62
+ 'TCP_MPTCPCapableFlag',
63
+ 'TCP_MPTCP',
64
+ 'TCP_MPTCPUnknown', 'TCP_MPTCPCapable', 'TCP_MPTCPDSS', 'TCP_MPTCPAddAddress', 'TCP_MPTCPRemoveAddress',
65
+ 'TCP_MPTCPPriority', 'TCP_MPTCPFallback', 'TCP_MPTCPFastclose',
66
+ 'TCP_MPTCPJoin',
67
+ 'TCP_MPTCPJoinSYN', 'TCP_MPTCPJoinSYNACK', 'TCP_MPTCPJoinACK',
68
+
69
+ # User Datagram Protocol
70
+ 'UDP',
71
+ ]
@@ -0,0 +1,555 @@
1
+ # -*- coding: utf-8 -*-
2
+ """data model for TCP 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, Union
14
+
15
+ from pcapkit.const.reg.apptype import AppType
16
+ from pcapkit.const.tcp.checksum import Checksum
17
+ from pcapkit.const.tcp.flags import Flags as TCP_Flags
18
+ from pcapkit.const.tcp.mp_tcp_option import MPTCPOption
19
+ from pcapkit.const.tcp.option import Option as OptionNumber
20
+ from pcapkit.corekit.multidict import OrderedMultiDict
21
+
22
+ IPAddress = Union[IPv4Address, IPv6Address]
23
+
24
+ __all__ = [
25
+ 'TCP',
26
+
27
+ 'Flags', 'SACKBlock',
28
+
29
+ 'Option',
30
+ 'UnassignedOption', 'EndOfOptionList', 'NoOperation', 'MaximumSegmentSize', 'WindowScale',
31
+ 'SACKPermitted', 'SACK', 'Echo', 'EchoReply', 'Timestamps', 'PartialOrderConnectionPermitted',
32
+ 'PartialOrderServiceProfile', 'CC', 'CCNew', 'CCEcho', 'AlternateChecksumRequest',
33
+ 'AlternateChecksumData', 'MD5Signature', 'QuickStartResponse', 'UserTimeout',
34
+ 'Authentication', 'FastOpenCookie',
35
+
36
+ 'MPTCPCapableFlag',
37
+
38
+ 'MPTCP',
39
+ 'MPTCPUnknown', 'MPTCPCapable', 'MPTCPDSS', 'MPTCPAddAddress', 'MPTCPRemoveAddress',
40
+ 'MPTCPPriority', 'MPTCPFallback', 'MPTCPFastclose',
41
+
42
+ 'MPTCPJoin',
43
+ 'MPTCPJoinSYN', 'MPTCPJoinSYNACK', 'MPTCPJoinACK',
44
+ ]
45
+
46
+
47
+ @info_final
48
+ class Flags(Data):
49
+ """Data model for TCP flags."""
50
+
51
+ #: ECN-nonce concealment protection.
52
+ #ns: 'bool'
53
+ #: Congestion window reduced.
54
+ cwr: 'bool'
55
+ #: ECN-Echo.
56
+ ece: 'bool'
57
+ #: Urgent.
58
+ urg: 'bool'
59
+ #: Acknowledgment.
60
+ ack: 'bool'
61
+ #: Push function.
62
+ psh: 'bool'
63
+ #: Reset connection.
64
+ rst: 'bool'
65
+ #: Synchronize sequence numbers.
66
+ syn: 'bool'
67
+ #: Last packet from sender.
68
+ fin: 'bool'
69
+
70
+ if TYPE_CHECKING:
71
+ def __init__(self, cwr: 'bool', ece: 'bool', urg: 'bool', ack: 'bool',
72
+ psh: 'bool', rst: 'bool', syn: 'bool', fin: 'bool') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
73
+
74
+
75
+ @info_final
76
+ class TCP(Protocol):
77
+ """Data model for TCP packet."""
78
+
79
+ #: Source port.
80
+ srcport: 'AppType'
81
+ #: Destination port.
82
+ dstport: 'AppType'
83
+ #: Sequence number.
84
+ seq: 'int'
85
+ #: Acknowledgment number.
86
+ ack: 'int'
87
+ #: Data offset.
88
+ hdr_len: 'int'
89
+ #: Flags.
90
+ flags: 'Flags'
91
+ #: Window size.
92
+ window_size: 'int'
93
+ #: Checksum.
94
+ checksum: 'bytes'
95
+ #: Urgent pointer.
96
+ urgent_pointer: 'int'
97
+
98
+ if TYPE_CHECKING:
99
+ #: TCP options.
100
+ options: 'OrderedMultiDict[OptionNumber, Option]'
101
+ #: Connection control flags.
102
+ connection: 'TCP_Flags'
103
+
104
+ def __init__(self, srcport: 'AppType', dstport: 'AppType', seq: 'int', ack: 'int', hdr_len: 'int',
105
+ flags: 'Flags', window_size: 'int', checksum: 'bytes', urgent_pointer: 'int') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
106
+
107
+
108
+ class Option(Data):
109
+ """Data model for TCP options."""
110
+
111
+ #: Option kind.
112
+ kind: 'OptionNumber'
113
+ #: Option length.
114
+ length: 'int'
115
+
116
+
117
+ @info_final
118
+ class UnassignedOption(Option):
119
+ """Data model for unassigned TCP option."""
120
+
121
+ #: Option data.
122
+ data: 'bytes'
123
+
124
+ if TYPE_CHECKING:
125
+ def __init__(self, kind: 'OptionNumber', length: 'int', data: 'bytes') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
126
+
127
+
128
+ @info_final
129
+ class EndOfOptionList(Option):
130
+ """Data model for TCP end of option list option."""
131
+
132
+ if TYPE_CHECKING:
133
+ def __init__(self, kind: 'OptionNumber', length: 'int') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
134
+
135
+
136
+ @info_final
137
+ class NoOperation(Option):
138
+ """Data model for TCP no operation option."""
139
+
140
+ if TYPE_CHECKING:
141
+ def __init__(self, kind: 'OptionNumber', length: 'int') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
142
+
143
+
144
+ @info_final
145
+ class MaximumSegmentSize(Option):
146
+ """Data model for TCP maximum segment size option."""
147
+
148
+ #: Maximum segment size.
149
+ mss: 'int'
150
+
151
+ if TYPE_CHECKING:
152
+ def __init__(self, kind: 'OptionNumber', length: 'int', mss: 'int') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
153
+
154
+
155
+ @info_final
156
+ class WindowScale(Option):
157
+ """Data model for TCP window scale option."""
158
+
159
+ #: Window scale.
160
+ shift: 'int'
161
+
162
+ if TYPE_CHECKING:
163
+ def __init__(self, kind: 'OptionNumber', length: 'int', shift: 'int') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
164
+
165
+
166
+ @info_final
167
+ class SACKPermitted(Option):
168
+ """Data model for TCP SACK permitted option."""
169
+
170
+ if TYPE_CHECKING:
171
+ def __init__(self, kind: 'OptionNumber', length: 'int') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
172
+
173
+
174
+ @info_final
175
+ class SACKBlock(Data):
176
+ """Data model for TCP SACK block."""
177
+
178
+ #: Left edge.
179
+ left: 'int'
180
+ #: Right edge.
181
+ right: 'int'
182
+
183
+ if TYPE_CHECKING:
184
+ def __init__(self, left: 'int', right: 'int') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
185
+
186
+
187
+ @info_final
188
+ class SACK(Option):
189
+ """Data model for TCP SACK option."""
190
+
191
+ #: SACK blocks.
192
+ sack: 'tuple[SACKBlock, ...]'
193
+
194
+ if TYPE_CHECKING:
195
+ def __init__(self, kind: 'OptionNumber', length: 'int', sack: 'tuple[SACKBlock, ...]') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
196
+
197
+
198
+ @info_final
199
+ class Echo(Option):
200
+ """Data model for TCP echo option."""
201
+
202
+ #: Echo data.
203
+ data: 'bytes'
204
+
205
+ if TYPE_CHECKING:
206
+ def __init__(self, kind: 'OptionNumber', length: 'int', data: 'bytes') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
207
+
208
+
209
+ @info_final
210
+ class EchoReply(Option):
211
+ """Data model for TCP echo reply option."""
212
+
213
+ #: Echo data.
214
+ data: 'bytes'
215
+
216
+ if TYPE_CHECKING:
217
+ def __init__(self, kind: 'OptionNumber', length: 'int', data: 'bytes') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
218
+
219
+
220
+ @info_final
221
+ class Timestamps(Option):
222
+ """Data model for TCP timestamp option."""
223
+
224
+ #: Timestamp .
225
+ timestamp: 'int'
226
+ #: Echo data.
227
+ echo: 'int'
228
+
229
+ if TYPE_CHECKING:
230
+ def __init__(self, kind: 'OptionNumber', length: 'int', timestamp: 'int', echo: 'int') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
231
+
232
+
233
+ @info_final
234
+ class PartialOrderConnectionPermitted(Option):
235
+ """Data model for TCP partial order connection permitted option."""
236
+
237
+ if TYPE_CHECKING:
238
+ def __init__(self, kind: 'OptionNumber', length: 'int') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
239
+
240
+
241
+ @info_final
242
+ class PartialOrderServiceProfile(Option):
243
+ """Data model for TCP partial order connection profile option."""
244
+
245
+ #: Start flag.
246
+ start: 'bool'
247
+ #: End flag.
248
+ end: 'bool'
249
+
250
+ if TYPE_CHECKING:
251
+ def __init__(self, kind: 'OptionNumber', length: 'int', start: 'bool', end: 'bool') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
252
+
253
+
254
+ @info_final
255
+ class CC(Option):
256
+ """Data model for TCP CC option."""
257
+
258
+ #: Connection count.
259
+ cc: 'int'
260
+
261
+ if TYPE_CHECKING:
262
+ def __init__(self, kind: 'OptionNumber', length: 'int', cc: 'int') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
263
+
264
+
265
+ @info_final
266
+ class CCNew(Option):
267
+ """Data model for TCP CC.NEW option."""
268
+
269
+ #: Connection count.
270
+ cc: 'int'
271
+
272
+ if TYPE_CHECKING:
273
+ def __init__(self, kind: 'OptionNumber', length: 'int', cc: 'int') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
274
+
275
+
276
+ @info_final
277
+ class CCEcho(Option):
278
+ """Data model for TCP CC.ECHO option."""
279
+
280
+ #: Connection count.
281
+ cc: 'int'
282
+
283
+ if TYPE_CHECKING:
284
+ def __init__(self, kind: 'OptionNumber', length: 'int', cc: 'int') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
285
+
286
+
287
+ @info_final
288
+ class AlternateChecksumRequest(Option):
289
+ """Data model for TCP alternate checksum request option."""
290
+
291
+ #: Checksum algorithm.
292
+ chksum: 'Checksum'
293
+
294
+ if TYPE_CHECKING:
295
+ def __init__(self, kind: 'OptionNumber', length: 'int', chksum: 'Checksum') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
296
+
297
+
298
+ @info_final
299
+ class AlternateChecksumData(Option):
300
+ """Data model for TCP alternate checksum data option."""
301
+
302
+ #: Checksum data.
303
+ data: 'bytes'
304
+
305
+ if TYPE_CHECKING:
306
+ def __init__(self, kind: 'OptionNumber', length: 'int', data: 'bytes') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
307
+
308
+
309
+ @info_final
310
+ class MD5Signature(Option):
311
+ """Data model for TCP MD5 signature option."""
312
+
313
+ #: MD5 signature.
314
+ digest: 'bytes'
315
+
316
+ if TYPE_CHECKING:
317
+ def __init__(self, kind: 'OptionNumber', length: 'int', digest: 'bytes') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
318
+
319
+
320
+ @info_final
321
+ class QuickStartResponse(Option):
322
+ """Data model for TCP quick start response option."""
323
+
324
+ #: Rate request.
325
+ req_rate: 'int'
326
+ #: TTL difference.
327
+ ttl_diff: 'int'
328
+ #: QS nonce.
329
+ nonce: 'int'
330
+
331
+ if TYPE_CHECKING:
332
+ def __init__(self, kind: 'OptionNumber', length: 'int', req_rate: 'int', ttl_diff: 'int', nonce: 'int') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
333
+
334
+
335
+ @info_final
336
+ class UserTimeout(Option):
337
+ """Data model for TCP user timeout option."""
338
+
339
+ #: User timeout.
340
+ timeout: 'timedelta'
341
+
342
+ if TYPE_CHECKING:
343
+ def __init__(self, kind: 'OptionNumber', length: 'int', timeout: 'timedelta') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
344
+
345
+
346
+ @info_final
347
+ class Authentication(Option):
348
+ """Data model for TCP authentication option."""
349
+
350
+ #: Key ID.
351
+ key_id: 'int'
352
+ #: Receive next key ID.
353
+ next_key_id: 'int'
354
+ #: MAC.
355
+ mac: 'bytes'
356
+
357
+ if TYPE_CHECKING:
358
+ def __init__(self, kind: 'OptionNumber', length: 'int', key_id: 'int', next_key_id: 'int', mac: 'bytes') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
359
+
360
+
361
+ @info_final
362
+ class FastOpenCookie(Option):
363
+ """Data model for TCP fast open cookie option."""
364
+
365
+ #: Cookie.
366
+ cookie: 'bytes'
367
+
368
+ if TYPE_CHECKING:
369
+ def __init__(self, kind: 'OptionNumber', length: 'int', cookie: 'bytes') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
370
+
371
+
372
+ class MPTCP(Option):
373
+ """Data model for TCP MPTCP option."""
374
+
375
+ #: Subtype.
376
+ subtype: 'MPTCPOption'
377
+
378
+
379
+ @info_final
380
+ class MPTCPUnknown(MPTCP):
381
+ """Data model for TCP unknown MPTCP option."""
382
+
383
+ #: Data.
384
+ data: 'bytes'
385
+
386
+ if TYPE_CHECKING:
387
+ def __init__(self, kind: 'OptionNumber', length: 'int', subtype: 'MPTCPOption', data: 'bytes') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
388
+
389
+
390
+ @info_final
391
+ class MPTCPCapableFlag(Data):
392
+ """Data model for TCP MPTCP capable option flags."""
393
+
394
+ #: Checksum require flag.
395
+ req: 'bool'
396
+ #: Extensibility flag.
397
+ ext: 'bool'
398
+ #: HMAC-SHA1 flag.
399
+ hsa: 'bool'
400
+
401
+ if TYPE_CHECKING:
402
+ def __init__(self, req: 'bool', ext: 'bool', hsa: 'bool') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
403
+
404
+
405
+ @info_final
406
+ class MPTCPCapable(MPTCP):
407
+ """Data model for TCP ``MP_CAPABLE`` option."""
408
+
409
+ #: Version.
410
+ version: 'int'
411
+ #: Flags.
412
+ flags: 'MPTCPCapableFlag'
413
+ #: Option sender's key.
414
+ skey: 'int'
415
+ #: Option receiver's key.
416
+ rkey: 'Optional[int]'
417
+
418
+ if TYPE_CHECKING:
419
+ def __init__(self, kind: 'OptionNumber', length: 'int', subtype: 'MPTCPOption', version: 'int', flags: 'MPTCPCapableFlag', skey: 'int', rkey: 'Optional[int]') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
420
+
421
+
422
+ class MPTCPJoin(MPTCP):
423
+ """Data model for TCP ``MP_JOIN`` option."""
424
+
425
+ #: Connection type.
426
+ connection: 'TCP_Flags'
427
+
428
+
429
+ @info_final
430
+ class MPTCPJoinSYN(MPTCPJoin):
431
+ """Data model for TCP ``MP_JOIN-SYN`` option."""
432
+
433
+ #: Backup path flag.
434
+ backup: 'bool'
435
+ #: Address ID.
436
+ addr_id: 'int'
437
+ #: Receiver's token.
438
+ token: 'int'
439
+ #: Sendder's random number.
440
+ nonce: 'int'
441
+
442
+ if TYPE_CHECKING:
443
+ def __init__(self, kind: 'OptionNumber', length: 'int', subtype: 'MPTCPOption', connection: 'TCP_Flags', backup: 'bool', addr_id: 'int', token: 'int', nonce: 'int') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
444
+
445
+
446
+ @info_final
447
+ class MPTCPJoinSYNACK(MPTCPJoin):
448
+ """Data model for TCP ``MP_JOIN-SYNACK`` option."""
449
+
450
+ #: Backup path flag.
451
+ backup: 'bool'
452
+ #: Address ID.
453
+ addr_id: 'int'
454
+ #: Sender's truncated HMAC.
455
+ hmac: 'bytes'
456
+ #: Sendder's random number.
457
+ nonce: 'int'
458
+
459
+ if TYPE_CHECKING:
460
+ def __init__(self, kind: 'OptionNumber', length: 'int', subtype: 'MPTCPOption', connection: 'TCP_Flags', backup: 'bool', addr_id: 'int', hmac: 'bytes', nonce: 'int') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
461
+
462
+
463
+ @info_final
464
+ class MPTCPJoinACK(MPTCPJoin):
465
+ """Data model for TCP ``MP_JOIN-ACK`` option."""
466
+
467
+ #: HMAC value.
468
+ hmac: 'bytes'
469
+
470
+ if TYPE_CHECKING:
471
+ def __init__(self, kind: 'OptionNumber', length: 'int', subtype: 'MPTCPOption', connection: 'TCP_Flags', hmac: 'bytes') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
472
+
473
+
474
+ @info_final
475
+ class MPTCPDSS(MPTCP):
476
+ """Data model for TCP ``DSS`` option."""
477
+
478
+ #: ``DATA_FIN`` flag.
479
+ data_fin: 'bool'
480
+ #: Data ACK.
481
+ ack: 'Optional[int]'
482
+ #: Data sequence number.
483
+ dsn: 'Optional[int]'
484
+ #: Subflow sequence number.
485
+ ssn: 'Optional[int]'
486
+ #: Data-level length.
487
+ dl_len: 'Optional[int]'
488
+ #: Checksum.
489
+ checksum: 'Optional[bytes]'
490
+
491
+ if TYPE_CHECKING:
492
+ def __init__(self, kind: 'OptionNumber', length: 'int', subtype: 'MPTCPOption', data_fin: 'bool', ack: 'Optional[int]', dsn: 'Optional[int]', ssn: 'Optional[int]', dl_len: 'Optional[int]', checksum: 'Optional[bytes]') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
493
+
494
+
495
+ @info_final
496
+ class MPTCPAddAddress(MPTCP):
497
+ """Data model for TCP ``ADD_ADDR`` option."""
498
+
499
+ #: IP version.
500
+ version: 'int'
501
+ #: Address ID.
502
+ addr_id: 'int'
503
+ #: Address.
504
+ addr: 'IPAddress'
505
+ #: Port number.
506
+ port: 'Optional[int]'
507
+
508
+ if TYPE_CHECKING:
509
+ def __init__(self, kind: 'OptionNumber', length: 'int', subtype: 'MPTCPOption', version: 'int', addr_id: 'int', addr: 'IPAddress', port: 'Optional[int]') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
510
+
511
+
512
+ @info_final
513
+ class MPTCPRemoveAddress(MPTCP):
514
+ """Data model for TCP ``REMOVE_ADDR`` option."""
515
+
516
+ #: Address ID.
517
+ addr_id: 'tuple[int, ...]'
518
+
519
+ if TYPE_CHECKING:
520
+ def __init__(self, kind: 'OptionNumber', length: 'int', subtype: 'MPTCPOption', addr_id: 'tuple[int, ...]') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
521
+
522
+
523
+ @info_final
524
+ class MPTCPPriority(MPTCP):
525
+ """Data model for TCP ``MP_PRIO`` option."""
526
+
527
+ #: Backup path flag.
528
+ backup: 'bool'
529
+ #: Address ID.
530
+ addr_id: 'Optional[int]'
531
+
532
+ if TYPE_CHECKING:
533
+ def __init__(self, kind: 'OptionNumber', length: 'int', subtype: 'MPTCPOption', backup: 'bool', addr_id: 'Optional[int]') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
534
+
535
+
536
+ @info_final
537
+ class MPTCPFallback(MPTCP):
538
+ """Data model for TCP ``MP_FAIL`` option."""
539
+
540
+ #: Data sequence number.
541
+ dsn: 'int'
542
+
543
+ if TYPE_CHECKING:
544
+ def __init__(self, kind: 'OptionNumber', length: 'int', subtype: 'MPTCPOption', dsn: 'int') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin
545
+
546
+
547
+ @info_final
548
+ class MPTCPFastclose(MPTCP):
549
+ """Data model for TCP ``MP_FASTCLOSE`` option."""
550
+
551
+ #: Option receiver's key.
552
+ rkey: 'int'
553
+
554
+ if TYPE_CHECKING:
555
+ def __init__(self, kind: 'OptionNumber', length: 'int', subtype: 'MPTCPOption', rkey: 'int') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long,redefined-builtin