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.
- pcapkit/__init__.py +126 -0
- pcapkit/__main__.py +138 -0
- pcapkit/all.py +136 -0
- pcapkit/const/__init__.py +81 -0
- pcapkit/const/arp/__init__.py +25 -0
- pcapkit/const/arp/hardware.py +181 -0
- pcapkit/const/arp/operation.py +131 -0
- pcapkit/const/ftp/__init__.py +25 -0
- pcapkit/const/ftp/command.py +309 -0
- pcapkit/const/ftp/return_code.py +304 -0
- pcapkit/const/hip/__init__.py +94 -0
- pcapkit/const/hip/certificate.py +77 -0
- pcapkit/const/hip/cipher.py +65 -0
- pcapkit/const/hip/di.py +59 -0
- pcapkit/const/hip/ecdsa_curve.py +59 -0
- pcapkit/const/hip/ecdsa_low_curve.py +56 -0
- pcapkit/const/hip/eddsa_curve.py +65 -0
- pcapkit/const/hip/esp_transform_suite.py +98 -0
- pcapkit/const/hip/group.py +86 -0
- pcapkit/const/hip/hi_algorithm.py +86 -0
- pcapkit/const/hip/hit_suite.py +68 -0
- pcapkit/const/hip/nat_traversal.py +62 -0
- pcapkit/const/hip/notify_message.py +200 -0
- pcapkit/const/hip/packet.py +89 -0
- pcapkit/const/hip/parameter.py +377 -0
- pcapkit/const/hip/registration.py +68 -0
- pcapkit/const/hip/registration_failure.py +84 -0
- pcapkit/const/hip/suite.py +71 -0
- pcapkit/const/hip/transport.py +59 -0
- pcapkit/const/http/__init__.py +39 -0
- pcapkit/const/http/error_code.py +95 -0
- pcapkit/const/http/frame.py +95 -0
- pcapkit/const/http/method.py +184 -0
- pcapkit/const/http/setting.py +96 -0
- pcapkit/const/http/status_code.py +294 -0
- pcapkit/const/ipv4/__init__.py +57 -0
- pcapkit/const/ipv4/classification_level.py +64 -0
- pcapkit/const/ipv4/option_class.py +55 -0
- pcapkit/const/ipv4/option_number.py +137 -0
- pcapkit/const/ipv4/protection_authority.py +63 -0
- pcapkit/const/ipv4/qs_function.py +51 -0
- pcapkit/const/ipv4/router_alert.py +251 -0
- pcapkit/const/ipv4/tos_del.py +51 -0
- pcapkit/const/ipv4/tos_ecn.py +55 -0
- pcapkit/const/ipv4/tos_pre.py +63 -0
- pcapkit/const/ipv4/tos_rel.py +51 -0
- pcapkit/const/ipv4/tos_thr.py +51 -0
- pcapkit/const/ipv4/ts_flag.py +53 -0
- pcapkit/const/ipv6/__init__.py +53 -0
- pcapkit/const/ipv6/extension_header.py +66 -0
- pcapkit/const/ipv6/option.py +137 -0
- pcapkit/const/ipv6/option_action.py +55 -0
- pcapkit/const/ipv6/qs_function.py +51 -0
- pcapkit/const/ipv6/router_alert.py +266 -0
- pcapkit/const/ipv6/routing.py +80 -0
- pcapkit/const/ipv6/seed_id.py +55 -0
- pcapkit/const/ipv6/smf_dpd_mode.py +51 -0
- pcapkit/const/ipv6/tagger_id.py +62 -0
- pcapkit/const/ipx/__init__.py +27 -0
- pcapkit/const/ipx/packet.py +72 -0
- pcapkit/const/ipx/socket.py +104 -0
- pcapkit/const/l2tp/__init__.py +21 -0
- pcapkit/const/l2tp/type.py +51 -0
- pcapkit/const/mh/__init__.py +204 -0
- pcapkit/const/mh/access_type.py +92 -0
- pcapkit/const/mh/ack_status_code.py +71 -0
- pcapkit/const/mh/ani_suboption.py +74 -0
- pcapkit/const/mh/auth_subtype.py +53 -0
- pcapkit/const/mh/binding_ack_flag.py +66 -0
- pcapkit/const/mh/binding_error.py +51 -0
- pcapkit/const/mh/binding_revocation.py +59 -0
- pcapkit/const/mh/binding_update_flag.py +81 -0
- pcapkit/const/mh/cga_extension.py +66 -0
- pcapkit/const/mh/cga_sec.py +57 -0
- pcapkit/const/mh/cga_type.py +68 -0
- pcapkit/const/mh/dhcp_support_mode.py +53 -0
- pcapkit/const/mh/dns_status_code.py +65 -0
- pcapkit/const/mh/dsmip6_tls_packet.py +62 -0
- pcapkit/const/mh/dsmipv6_home_address.py +74 -0
- pcapkit/const/mh/enumerating_algorithm.py +56 -0
- pcapkit/const/mh/fb_ack_status.py +62 -0
- pcapkit/const/mh/fb_action.py +71 -0
- pcapkit/const/mh/fb_indication_trigger.py +65 -0
- pcapkit/const/mh/fb_type.py +59 -0
- pcapkit/const/mh/flow_id_status.py +77 -0
- pcapkit/const/mh/flow_id_suboption.py +71 -0
- pcapkit/const/mh/handoff_type.py +71 -0
- pcapkit/const/mh/handover_ack_flag.py +54 -0
- pcapkit/const/mh/handover_ack_status.py +92 -0
- pcapkit/const/mh/handover_initiate_flag.py +57 -0
- pcapkit/const/mh/handover_initiate_status.py +62 -0
- pcapkit/const/mh/home_address_reply.py +71 -0
- pcapkit/const/mh/lla_code.py +63 -0
- pcapkit/const/mh/lma_mag_suboption.py +59 -0
- pcapkit/const/mh/mn_group_id.py +59 -0
- pcapkit/const/mh/mn_id_subtype.py +77 -0
- pcapkit/const/mh/operator_id.py +63 -0
- pcapkit/const/mh/option.py +260 -0
- pcapkit/const/mh/packet.py +119 -0
- pcapkit/const/mh/qos_attribute.py +89 -0
- pcapkit/const/mh/revocation_status_code.py +83 -0
- pcapkit/const/mh/revocation_trigger.py +86 -0
- pcapkit/const/mh/status_code.py +232 -0
- pcapkit/const/mh/traffic_selector.py +62 -0
- pcapkit/const/mh/upa_status.py +71 -0
- pcapkit/const/mh/upn_reason.py +80 -0
- pcapkit/const/ospf/__init__.py +27 -0
- pcapkit/const/ospf/authentication.py +65 -0
- pcapkit/const/ospf/packet.py +71 -0
- pcapkit/const/pcapng/__init__.py +51 -0
- pcapkit/const/pcapng/block_type.py +152 -0
- pcapkit/const/pcapng/filter_type.py +48 -0
- pcapkit/const/pcapng/hash_algorithm.py +59 -0
- pcapkit/const/pcapng/option_type.py +233 -0
- pcapkit/const/pcapng/record_type.py +57 -0
- pcapkit/const/pcapng/secrets_type.py +56 -0
- pcapkit/const/pcapng/verdict_type.py +53 -0
- pcapkit/const/reg/__init__.py +34 -0
- pcapkit/const/reg/apptype.py +32702 -0
- pcapkit/const/reg/ethertype.py +714 -0
- pcapkit/const/reg/linktype.py +902 -0
- pcapkit/const/reg/transtype.py +523 -0
- pcapkit/const/tcp/__init__.py +35 -0
- pcapkit/const/tcp/checksum.py +55 -0
- pcapkit/const/tcp/flags.py +73 -0
- pcapkit/const/tcp/mp_tcp_option.py +80 -0
- pcapkit/const/tcp/option.py +198 -0
- pcapkit/const/vlan/__init__.py +23 -0
- pcapkit/const/vlan/priority_level.py +71 -0
- pcapkit/corekit/__init__.py +59 -0
- pcapkit/corekit/fields/__init__.py +45 -0
- pcapkit/corekit/fields/collections.py +282 -0
- pcapkit/corekit/fields/field.py +269 -0
- pcapkit/corekit/fields/ipaddress.py +274 -0
- pcapkit/corekit/fields/misc.py +722 -0
- pcapkit/corekit/fields/numbers.py +375 -0
- pcapkit/corekit/fields/strings.py +245 -0
- pcapkit/corekit/infoclass.py +394 -0
- pcapkit/corekit/io.py +506 -0
- pcapkit/corekit/module.py +39 -0
- pcapkit/corekit/multidict.py +626 -0
- pcapkit/corekit/protochain.py +263 -0
- pcapkit/corekit/version.py +33 -0
- pcapkit/dumpkit/__init__.py +15 -0
- pcapkit/dumpkit/common.py +199 -0
- pcapkit/dumpkit/null.py +77 -0
- pcapkit/dumpkit/pcap.py +144 -0
- pcapkit/foundation/__init__.py +45 -0
- pcapkit/foundation/engines/__init__.py +36 -0
- pcapkit/foundation/engines/dpkt.py +230 -0
- pcapkit/foundation/engines/engine.py +194 -0
- pcapkit/foundation/engines/pcap.py +188 -0
- pcapkit/foundation/engines/pcapng.py +310 -0
- pcapkit/foundation/engines/pyshark.py +166 -0
- pcapkit/foundation/engines/scapy.py +161 -0
- pcapkit/foundation/extraction.py +915 -0
- pcapkit/foundation/reassembly/__init__.py +49 -0
- pcapkit/foundation/reassembly/data/__init__.py +48 -0
- pcapkit/foundation/reassembly/data/ip.py +117 -0
- pcapkit/foundation/reassembly/data/tcp.py +145 -0
- pcapkit/foundation/reassembly/ip.py +192 -0
- pcapkit/foundation/reassembly/ipv4.py +50 -0
- pcapkit/foundation/reassembly/ipv6.py +50 -0
- pcapkit/foundation/reassembly/reassembly.py +389 -0
- pcapkit/foundation/reassembly/tcp.py +249 -0
- pcapkit/foundation/registry/__init__.py +41 -0
- pcapkit/foundation/registry/foundation.py +327 -0
- pcapkit/foundation/registry/protocols.py +885 -0
- pcapkit/foundation/traceflow/__init__.py +44 -0
- pcapkit/foundation/traceflow/data/__init__.py +30 -0
- pcapkit/foundation/traceflow/data/tcp.py +105 -0
- pcapkit/foundation/traceflow/tcp.py +159 -0
- pcapkit/foundation/traceflow/traceflow.py +390 -0
- pcapkit/interface/__init__.py +22 -0
- pcapkit/interface/core.py +185 -0
- pcapkit/interface/misc.py +120 -0
- pcapkit/protocols/__init__.py +85 -0
- pcapkit/protocols/application/NotImplemented/bgp.py +0 -0
- pcapkit/protocols/application/NotImplemented/dhcp.py +0 -0
- pcapkit/protocols/application/NotImplemented/dhcpv6.py +0 -0
- pcapkit/protocols/application/NotImplemented/dns.py +0 -0
- pcapkit/protocols/application/NotImplemented/imap.py +0 -0
- pcapkit/protocols/application/NotImplemented/ldap.py +0 -0
- pcapkit/protocols/application/NotImplemented/mqtt.py +0 -0
- pcapkit/protocols/application/NotImplemented/nntp.py +0 -0
- pcapkit/protocols/application/NotImplemented/ntp.py +0 -0
- pcapkit/protocols/application/NotImplemented/onc_rpc.py +0 -0
- pcapkit/protocols/application/NotImplemented/pop.py +0 -0
- pcapkit/protocols/application/NotImplemented/rip.py +0 -0
- pcapkit/protocols/application/NotImplemented/rtp.py +0 -0
- pcapkit/protocols/application/NotImplemented/sip.py +0 -0
- pcapkit/protocols/application/NotImplemented/smtp.py +0 -0
- pcapkit/protocols/application/NotImplemented/snmp.py +0 -0
- pcapkit/protocols/application/NotImplemented/ssh.py +0 -0
- pcapkit/protocols/application/NotImplemented/telnet.py +0 -0
- pcapkit/protocols/application/NotImplemented/tls.py +0 -0
- pcapkit/protocols/application/NotImplemented/xmpp.py +0 -0
- pcapkit/protocols/application/__init__.py +34 -0
- pcapkit/protocols/application/application.py +114 -0
- pcapkit/protocols/application/ftp.py +206 -0
- pcapkit/protocols/application/http.py +176 -0
- pcapkit/protocols/application/httpv1.py +320 -0
- pcapkit/protocols/application/httpv2.py +1255 -0
- pcapkit/protocols/data/__init__.py +192 -0
- pcapkit/protocols/data/application/__init__.py +57 -0
- pcapkit/protocols/data/application/ftp.py +59 -0
- pcapkit/protocols/data/application/httpv1.py +79 -0
- pcapkit/protocols/data/application/httpv2.py +293 -0
- pcapkit/protocols/data/data.py +25 -0
- pcapkit/protocols/data/internet/__init__.py +298 -0
- pcapkit/protocols/data/internet/ah.py +31 -0
- pcapkit/protocols/data/internet/hip.py +804 -0
- pcapkit/protocols/data/internet/hopopt.py +351 -0
- pcapkit/protocols/data/internet/ipv4.py +369 -0
- pcapkit/protocols/data/internet/ipv6.py +67 -0
- pcapkit/protocols/data/internet/ipv6_frag.py +29 -0
- pcapkit/protocols/data/internet/ipv6_opts.py +368 -0
- pcapkit/protocols/data/internet/ipv6_route.py +86 -0
- pcapkit/protocols/data/internet/ipx.py +56 -0
- pcapkit/protocols/data/internet/mh.py +509 -0
- pcapkit/protocols/data/link/__init__.py +33 -0
- pcapkit/protocols/data/link/arp.py +74 -0
- pcapkit/protocols/data/link/ethernet.py +28 -0
- pcapkit/protocols/data/link/l2tp.py +63 -0
- pcapkit/protocols/data/link/ospf.py +58 -0
- pcapkit/protocols/data/link/vlan.py +42 -0
- pcapkit/protocols/data/misc/__init__.py +109 -0
- pcapkit/protocols/data/misc/null.py +18 -0
- pcapkit/protocols/data/misc/pcap/__init__.py +18 -0
- pcapkit/protocols/data/misc/pcap/frame.py +56 -0
- pcapkit/protocols/data/misc/pcap/header.py +53 -0
- pcapkit/protocols/data/misc/pcapng.py +925 -0
- pcapkit/protocols/data/misc/raw.py +25 -0
- pcapkit/protocols/data/protocol.py +32 -0
- pcapkit/protocols/data/transport/__init__.py +71 -0
- pcapkit/protocols/data/transport/tcp.py +555 -0
- pcapkit/protocols/data/transport/udp.py +29 -0
- pcapkit/protocols/internet/NotImplemented/ecn.py +0 -0
- pcapkit/protocols/internet/NotImplemented/esp.py +97 -0
- pcapkit/protocols/internet/NotImplemented/icmp.py +0 -0
- pcapkit/protocols/internet/NotImplemented/icmpv6.py +0 -0
- pcapkit/protocols/internet/NotImplemented/igmp.py +0 -0
- pcapkit/protocols/internet/NotImplemented/shim6.py +0 -0
- pcapkit/protocols/internet/__init__.py +43 -0
- pcapkit/protocols/internet/ah.py +275 -0
- pcapkit/protocols/internet/hip.py +4727 -0
- pcapkit/protocols/internet/hopopt.py +1879 -0
- pcapkit/protocols/internet/internet.py +240 -0
- pcapkit/protocols/internet/ip.py +51 -0
- pcapkit/protocols/internet/ipsec.py +50 -0
- pcapkit/protocols/internet/ipv4.py +1782 -0
- pcapkit/protocols/internet/ipv6.py +361 -0
- pcapkit/protocols/internet/ipv6_frag.py +258 -0
- pcapkit/protocols/internet/ipv6_opts.py +1890 -0
- pcapkit/protocols/internet/ipv6_route.py +710 -0
- pcapkit/protocols/internet/ipx.py +230 -0
- pcapkit/protocols/internet/mh.py +2764 -0
- pcapkit/protocols/link/NotImplemented/dsl.py +0 -0
- pcapkit/protocols/link/NotImplemented/eapol.py +1 -0
- pcapkit/protocols/link/NotImplemented/fddi.py +0 -0
- pcapkit/protocols/link/NotImplemented/isdn.py +0 -0
- pcapkit/protocols/link/NotImplemented/ndp.py +0 -0
- pcapkit/protocols/link/NotImplemented/ppp.py +0 -0
- pcapkit/protocols/link/__init__.py +35 -0
- pcapkit/protocols/link/arp.py +421 -0
- pcapkit/protocols/link/ethernet.py +248 -0
- pcapkit/protocols/link/l2tp.py +267 -0
- pcapkit/protocols/link/link.py +140 -0
- pcapkit/protocols/link/ospf.py +342 -0
- pcapkit/protocols/link/rarp.py +82 -0
- pcapkit/protocols/link/vlan.py +225 -0
- pcapkit/protocols/misc/__init__.py +37 -0
- pcapkit/protocols/misc/null.py +129 -0
- pcapkit/protocols/misc/pcap/__init__.py +17 -0
- pcapkit/protocols/misc/pcap/frame.py +478 -0
- pcapkit/protocols/misc/pcap/header.py +358 -0
- pcapkit/protocols/misc/pcapng.py +5520 -0
- pcapkit/protocols/misc/raw.py +180 -0
- pcapkit/protocols/protocol.py +1216 -0
- pcapkit/protocols/schema/__init__.py +140 -0
- pcapkit/protocols/schema/application/__init__.py +40 -0
- pcapkit/protocols/schema/application/ftp.py +21 -0
- pcapkit/protocols/schema/application/httpv1.py +21 -0
- pcapkit/protocols/schema/application/httpv2.py +384 -0
- pcapkit/protocols/schema/internet/__init__.py +294 -0
- pcapkit/protocols/schema/internet/ah.py +40 -0
- pcapkit/protocols/schema/internet/hip.py +1184 -0
- pcapkit/protocols/schema/internet/hopopt.py +679 -0
- pcapkit/protocols/schema/internet/ipv4.py +576 -0
- pcapkit/protocols/schema/internet/ipv6.py +63 -0
- pcapkit/protocols/schema/internet/ipv6_frag.py +48 -0
- pcapkit/protocols/schema/internet/ipv6_opts.py +680 -0
- pcapkit/protocols/schema/internet/ipv6_route.py +198 -0
- pcapkit/protocols/schema/internet/ipx.py +40 -0
- pcapkit/protocols/schema/internet/mh.py +718 -0
- pcapkit/protocols/schema/link/__init__.py +19 -0
- pcapkit/protocols/schema/link/arp.py +39 -0
- pcapkit/protocols/schema/link/ethernet.py +51 -0
- pcapkit/protocols/schema/link/l2tp.py +88 -0
- pcapkit/protocols/schema/link/ospf.py +90 -0
- pcapkit/protocols/schema/link/vlan.py +69 -0
- pcapkit/protocols/schema/misc/__init__.py +108 -0
- pcapkit/protocols/schema/misc/null.py +18 -0
- pcapkit/protocols/schema/misc/pcap/__init__.py +10 -0
- pcapkit/protocols/schema/misc/pcap/frame.py +51 -0
- pcapkit/protocols/schema/misc/pcap/header.py +63 -0
- pcapkit/protocols/schema/misc/pcapng.py +1689 -0
- pcapkit/protocols/schema/misc/raw.py +24 -0
- pcapkit/protocols/schema/schema.py +809 -0
- pcapkit/protocols/schema/transport/__init__.py +69 -0
- pcapkit/protocols/schema/transport/tcp.py +928 -0
- pcapkit/protocols/schema/transport/udp.py +90 -0
- pcapkit/protocols/transport/NotImplemented/dccp.py +0 -0
- pcapkit/protocols/transport/NotImplemented/rsvp.py +0 -0
- pcapkit/protocols/transport/NotImplemented/sctp.py +0 -0
- pcapkit/protocols/transport/__init__.py +27 -0
- pcapkit/protocols/transport/tcp.py +3025 -0
- pcapkit/protocols/transport/transport.py +158 -0
- pcapkit/protocols/transport/udp.py +214 -0
- pcapkit/py.typed +0 -0
- pcapkit/toolkit/__init__.py +57 -0
- pcapkit/toolkit/dpkt.py +306 -0
- pcapkit/toolkit/pcap.py +212 -0
- pcapkit/toolkit/pcapng.py +251 -0
- pcapkit/toolkit/pyshark.py +99 -0
- pcapkit/toolkit/scapy.py +297 -0
- pcapkit/utilities/__init__.py +20 -0
- pcapkit/utilities/compat.py +196 -0
- pcapkit/utilities/decorators.py +192 -0
- pcapkit/utilities/exceptions.py +365 -0
- pcapkit/utilities/logging.py +55 -0
- pcapkit/utilities/warnings.py +185 -0
- pcapkit/vendor/__init__.py +105 -0
- pcapkit/vendor/__main__.py +92 -0
- pcapkit/vendor/arp/__init__.py +27 -0
- pcapkit/vendor/arp/hardware.py +29 -0
- pcapkit/vendor/arp/operation.py +29 -0
- pcapkit/vendor/default.py +474 -0
- pcapkit/vendor/ftp/__init__.py +27 -0
- pcapkit/vendor/ftp/command.py +244 -0
- pcapkit/vendor/ftp/return_code.py +256 -0
- pcapkit/vendor/hip/__init__.py +94 -0
- pcapkit/vendor/hip/certificate.py +29 -0
- pcapkit/vendor/hip/cipher.py +29 -0
- pcapkit/vendor/hip/di.py +29 -0
- pcapkit/vendor/hip/ecdsa_curve.py +29 -0
- pcapkit/vendor/hip/ecdsa_low_curve.py +29 -0
- pcapkit/vendor/hip/eddsa_curve.py +85 -0
- pcapkit/vendor/hip/esp_transform_suite.py +29 -0
- pcapkit/vendor/hip/group.py +87 -0
- pcapkit/vendor/hip/hi_algorithm.py +29 -0
- pcapkit/vendor/hip/hit_suite.py +29 -0
- pcapkit/vendor/hip/nat_traversal.py +29 -0
- pcapkit/vendor/hip/notify_message.py +29 -0
- pcapkit/vendor/hip/packet.py +88 -0
- pcapkit/vendor/hip/parameter.py +88 -0
- pcapkit/vendor/hip/registration.py +29 -0
- pcapkit/vendor/hip/registration_failure.py +29 -0
- pcapkit/vendor/hip/suite.py +29 -0
- pcapkit/vendor/hip/transport.py +29 -0
- pcapkit/vendor/http/__init__.py +39 -0
- pcapkit/vendor/http/error_code.py +95 -0
- pcapkit/vendor/http/frame.py +91 -0
- pcapkit/vendor/http/method.py +167 -0
- pcapkit/vendor/http/setting.py +93 -0
- pcapkit/vendor/http/status_code.py +185 -0
- pcapkit/vendor/ipv4/__init__.py +57 -0
- pcapkit/vendor/ipv4/classification_level.py +91 -0
- pcapkit/vendor/ipv4/option_class.py +80 -0
- pcapkit/vendor/ipv4/option_number.py +105 -0
- pcapkit/vendor/ipv4/protection_authority.py +84 -0
- pcapkit/vendor/ipv4/qs_function.py +78 -0
- pcapkit/vendor/ipv4/router_alert.py +93 -0
- pcapkit/vendor/ipv4/tos_del.py +78 -0
- pcapkit/vendor/ipv4/tos_ecn.py +95 -0
- pcapkit/vendor/ipv4/tos_pre.py +84 -0
- pcapkit/vendor/ipv4/tos_rel.py +78 -0
- pcapkit/vendor/ipv4/tos_thr.py +77 -0
- pcapkit/vendor/ipv4/ts_flag.py +79 -0
- pcapkit/vendor/ipv6/__init__.py +53 -0
- pcapkit/vendor/ipv6/extension_header.py +171 -0
- pcapkit/vendor/ipv6/option.py +104 -0
- pcapkit/vendor/ipv6/option_action.py +90 -0
- pcapkit/vendor/ipv6/qs_function.py +78 -0
- pcapkit/vendor/ipv6/router_alert.py +93 -0
- pcapkit/vendor/ipv6/routing.py +87 -0
- pcapkit/vendor/ipv6/seed_id.py +81 -0
- pcapkit/vendor/ipv6/smf_dpd_mode.py +78 -0
- pcapkit/vendor/ipv6/tagger_id.py +81 -0
- pcapkit/vendor/ipx/__init__.py +37 -0
- pcapkit/vendor/ipx/packet.py +123 -0
- pcapkit/vendor/ipx/socket.py +125 -0
- pcapkit/vendor/l2tp/__init__.py +21 -0
- pcapkit/vendor/l2tp/type.py +78 -0
- pcapkit/vendor/mh/__init__.py +204 -0
- pcapkit/vendor/mh/access_type.py +87 -0
- pcapkit/vendor/mh/ack_status_code.py +88 -0
- pcapkit/vendor/mh/ani_suboption.py +88 -0
- pcapkit/vendor/mh/auth_subtype.py +83 -0
- pcapkit/vendor/mh/binding_ack_flag.py +148 -0
- pcapkit/vendor/mh/binding_error.py +78 -0
- pcapkit/vendor/mh/binding_revocation.py +87 -0
- pcapkit/vendor/mh/binding_update_flag.py +147 -0
- pcapkit/vendor/mh/cga_extension.py +91 -0
- pcapkit/vendor/mh/cga_sec.py +91 -0
- pcapkit/vendor/mh/cga_type.py +74 -0
- pcapkit/vendor/mh/dhcp_support_mode.py +77 -0
- pcapkit/vendor/mh/dns_status_code.py +87 -0
- pcapkit/vendor/mh/dsmip6_tls_packet.py +87 -0
- pcapkit/vendor/mh/dsmipv6_home_address.py +87 -0
- pcapkit/vendor/mh/enumerating_algorithm.py +82 -0
- pcapkit/vendor/mh/fb_ack_status.py +87 -0
- pcapkit/vendor/mh/fb_action.py +88 -0
- pcapkit/vendor/mh/fb_indication_trigger.py +87 -0
- pcapkit/vendor/mh/fb_type.py +88 -0
- pcapkit/vendor/mh/flow_id_status.py +87 -0
- pcapkit/vendor/mh/flow_id_suboption.py +87 -0
- pcapkit/vendor/mh/handoff_type.py +87 -0
- pcapkit/vendor/mh/handover_ack_flag.py +143 -0
- pcapkit/vendor/mh/handover_ack_status.py +87 -0
- pcapkit/vendor/mh/handover_initiate_flag.py +143 -0
- pcapkit/vendor/mh/handover_initiate_status.py +87 -0
- pcapkit/vendor/mh/home_address_reply.py +87 -0
- pcapkit/vendor/mh/lla_code.py +97 -0
- pcapkit/vendor/mh/lma_mag_suboption.py +88 -0
- pcapkit/vendor/mh/mn_group_id.py +87 -0
- pcapkit/vendor/mh/mn_id_subtype.py +87 -0
- pcapkit/vendor/mh/operator_id.py +87 -0
- pcapkit/vendor/mh/option.py +83 -0
- pcapkit/vendor/mh/packet.py +82 -0
- pcapkit/vendor/mh/qos_attribute.py +87 -0
- pcapkit/vendor/mh/revocation_status_code.py +87 -0
- pcapkit/vendor/mh/revocation_trigger.py +87 -0
- pcapkit/vendor/mh/status_code.py +91 -0
- pcapkit/vendor/mh/traffic_selector.py +87 -0
- pcapkit/vendor/mh/upa_status.py +87 -0
- pcapkit/vendor/mh/upn_reason.py +87 -0
- pcapkit/vendor/ospf/__init__.py +27 -0
- pcapkit/vendor/ospf/authentication.py +29 -0
- pcapkit/vendor/ospf/packet.py +29 -0
- pcapkit/vendor/pcapng/__init__.py +51 -0
- pcapkit/vendor/pcapng/block_type.py +94 -0
- pcapkit/vendor/pcapng/filter_type.py +77 -0
- pcapkit/vendor/pcapng/hash_algorithm.py +82 -0
- pcapkit/vendor/pcapng/option_type.py +287 -0
- pcapkit/vendor/pcapng/record_type.py +81 -0
- pcapkit/vendor/pcapng/secrets_type.py +81 -0
- pcapkit/vendor/pcapng/verdict_type.py +79 -0
- pcapkit/vendor/reg/__init__.py +34 -0
- pcapkit/vendor/reg/apptype.py +338 -0
- pcapkit/vendor/reg/ethertype.py +121 -0
- pcapkit/vendor/reg/linktype.py +110 -0
- pcapkit/vendor/reg/transtype.py +111 -0
- pcapkit/vendor/tcp/__init__.py +35 -0
- pcapkit/vendor/tcp/checksum.py +80 -0
- pcapkit/vendor/tcp/flags.py +149 -0
- pcapkit/vendor/tcp/mp_tcp_option.py +90 -0
- pcapkit/vendor/tcp/option.py +103 -0
- pcapkit/vendor/vlan/__init__.py +23 -0
- pcapkit/vendor/vlan/priority_level.py +97 -0
- pypcapkit-1.3.3.post1.dist-info/LICENSE +29 -0
- pypcapkit-1.3.3.post1.dist-info/METADATA +236 -0
- pypcapkit-1.3.3.post1.dist-info/RECORD +466 -0
- pypcapkit-1.3.3.post1.dist-info/WHEEL +5 -0
- pypcapkit-1.3.3.post1.dist-info/entry_points.txt +3 -0
- pypcapkit-1.3.3.post1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,925 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
"""data models for PCAP-NG file format"""
|
3
|
+
|
4
|
+
import datetime
|
5
|
+
import decimal
|
6
|
+
from typing import TYPE_CHECKING
|
7
|
+
|
8
|
+
from pcapkit.corekit.infoclass import info_final
|
9
|
+
from pcapkit.corekit.multidict import MultiDict
|
10
|
+
from pcapkit.protocols.data.data import Data
|
11
|
+
from pcapkit.protocols.data.protocol import Protocol
|
12
|
+
from pcapkit.utilities.compat import localcontext
|
13
|
+
|
14
|
+
__all__ = [
|
15
|
+
'PCAPNG',
|
16
|
+
|
17
|
+
'Option', 'UnknownOption',
|
18
|
+
'EndOfOption', 'CommentOption', 'CustomOption',
|
19
|
+
'IF_NameOption', 'IF_DescriptionOption', 'IF_IPv4AddrOption', 'IF_IPv6AddrOption',
|
20
|
+
'IF_MACAddrOption', 'IF_EUIAddrOption', 'IF_SpeedOption', 'IF_TSResolOption',
|
21
|
+
'IF_TZoneOption', 'IF_FilterOption', 'IF_OSOption', 'IF_FCSLenOption',
|
22
|
+
'IF_TSOffsetOption', 'IF_HardwareOption', 'IF_TxSpeedOption', 'IF_RxSpeedOption',
|
23
|
+
'EPB_FlagsOption', 'EPB_HashOption', 'EPB_DropCountOption', 'EPB_PacketIDOption',
|
24
|
+
'EPB_QueueOption', 'EPB_VerdictOption',
|
25
|
+
'NS_DNSNameOption', 'NS_DNSIP4AddrOption', 'NS_DNSIP6AddrOption',
|
26
|
+
'ISB_StartTimeOption', 'ISB_EndTimeOption', 'ISB_IFRecvOption', 'ISB_IFDropOption',
|
27
|
+
'ISB_FilterAcceptOption', 'ISB_OSDropOption', 'ISB_UsrDelivOption',
|
28
|
+
'PACK_FlagsOption', 'PACK_HashOption',
|
29
|
+
|
30
|
+
'NameResolutionRecord', 'UnknownRecord', 'EndRecord', 'IPv4Record', 'IPv6Record',
|
31
|
+
|
32
|
+
'DSBSecrets', 'UnknownSecrets', 'TLSKeyLog', 'WireGuardKeyLog', 'ZigBeeNWKKey',
|
33
|
+
'ZigBeeAPSKey',
|
34
|
+
|
35
|
+
'UnknownBlock', 'SectionHeaderBlock', 'InterfaceDescriptionBlock',
|
36
|
+
'EnhancedPacketBlock', 'SimplePacketBlock', 'NameResolutionBlock',
|
37
|
+
'InterfaceStatisticsBlock', 'SystemdJournalExportBlock', 'DecryptionSecretsBlock',
|
38
|
+
'CustomBlock', 'PacketBlock',
|
39
|
+
]
|
40
|
+
|
41
|
+
if TYPE_CHECKING:
|
42
|
+
from datetime import datetime as dt_type
|
43
|
+
from datetime import timezone as dt_timezone
|
44
|
+
from decimal import Decimal
|
45
|
+
from ipaddress import IPv4Address, IPv4Interface, IPv6Address, IPv6Interface
|
46
|
+
|
47
|
+
from typing_extensions import Literal
|
48
|
+
|
49
|
+
from pcapkit.const.pcapng.block_type import BlockType as Enum_BlockType
|
50
|
+
from pcapkit.const.pcapng.filter_type import FilterType as Enum_FilterType
|
51
|
+
from pcapkit.const.pcapng.hash_algorithm import HashAlgorithm as Enum_HashAlgorithm
|
52
|
+
from pcapkit.const.pcapng.option_type import OptionType as Enum_OptionType
|
53
|
+
from pcapkit.const.pcapng.record_type import RecordType as Enum_RecordType
|
54
|
+
from pcapkit.const.pcapng.secrets_type import SecretsType as Enum_SecretsType
|
55
|
+
from pcapkit.const.pcapng.verdict_type import VerdictType as Enum_VerdictType
|
56
|
+
from pcapkit.const.reg.linktype import LinkType as Enum_LinkType
|
57
|
+
from pcapkit.corekit.multidict import OrderedMultiDict
|
58
|
+
from pcapkit.corekit.version import VersionInfo
|
59
|
+
from pcapkit.protocols.misc.pcapng import (PacketDirection, PacketReception, TLSKeyLabel,
|
60
|
+
WireGuardKeyLabel)
|
61
|
+
|
62
|
+
|
63
|
+
class PCAPNG(Protocol):
|
64
|
+
"""Data model for PCAP-NG file blocks."""
|
65
|
+
|
66
|
+
#: Block type.
|
67
|
+
type: 'Enum_BlockType'
|
68
|
+
#: Block total length.
|
69
|
+
length: 'int'
|
70
|
+
|
71
|
+
|
72
|
+
@info_final
|
73
|
+
class UnknownBlock(PCAPNG):
|
74
|
+
"""Data model for unknown PCAP-NG file blocks."""
|
75
|
+
|
76
|
+
#: Block body.
|
77
|
+
body: 'bytes'
|
78
|
+
|
79
|
+
if TYPE_CHECKING:
|
80
|
+
def __init__(self, type: 'Enum_BlockType', length: 'int', body: 'bytes') -> None: ...
|
81
|
+
|
82
|
+
|
83
|
+
class Option(Data):
|
84
|
+
"""Data model for PCAP-NG file options."""
|
85
|
+
|
86
|
+
#: Option type.
|
87
|
+
type: 'Enum_OptionType'
|
88
|
+
#: Option data length.
|
89
|
+
length: 'int'
|
90
|
+
|
91
|
+
|
92
|
+
@info_final
|
93
|
+
class UnknownOption(Option):
|
94
|
+
"""Data model for unknown PCAP-NG file options."""
|
95
|
+
|
96
|
+
#: Option data.
|
97
|
+
data: 'bytes'
|
98
|
+
|
99
|
+
if TYPE_CHECKING:
|
100
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', data: 'bytes') -> None: ...
|
101
|
+
|
102
|
+
|
103
|
+
@info_final
|
104
|
+
class EndOfOption(Option):
|
105
|
+
"""Data model for PCAP-NG file ``opt_endofopt`` options."""
|
106
|
+
|
107
|
+
if TYPE_CHECKING:
|
108
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int') -> None: ...
|
109
|
+
|
110
|
+
|
111
|
+
@info_final
|
112
|
+
class CommentOption(Option):
|
113
|
+
"""Data model for PCAP-NG file ``opt_comment`` options."""
|
114
|
+
|
115
|
+
#: Comment text.
|
116
|
+
comment: 'str'
|
117
|
+
|
118
|
+
if TYPE_CHECKING:
|
119
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', comment: 'str') -> None: ...
|
120
|
+
|
121
|
+
|
122
|
+
@info_final
|
123
|
+
class CustomOption(Option):
|
124
|
+
"""Data model for PCAP-NG file ``opt_custom`` options."""
|
125
|
+
|
126
|
+
#: Private enterprise number (PEN).
|
127
|
+
pen: 'int'
|
128
|
+
#: Custom data.
|
129
|
+
data: 'bytes'
|
130
|
+
|
131
|
+
if TYPE_CHECKING:
|
132
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', pen: 'int', data: 'bytes') -> None: ...
|
133
|
+
|
134
|
+
|
135
|
+
@info_final
|
136
|
+
class SectionHeaderBlock(PCAPNG):
|
137
|
+
"""Data model for PCAP-NG Section Header Block (SHB)."""
|
138
|
+
|
139
|
+
#: Byte order.
|
140
|
+
byteorder: 'Literal["big", "little"]'
|
141
|
+
#: Version number.
|
142
|
+
version: 'VersionInfo'
|
143
|
+
#: Section length.
|
144
|
+
section_length: 'int'
|
145
|
+
#: Options.
|
146
|
+
options: 'OrderedMultiDict[Enum_OptionType, Option]'
|
147
|
+
|
148
|
+
if TYPE_CHECKING:
|
149
|
+
def __init__(self, type: 'Enum_BlockType', length: 'int', byteorder: 'Literal["big", "little"]',
|
150
|
+
version: 'VersionInfo', # pylint: disable=unused-argument
|
151
|
+
section_length: 'int', options: 'OrderedMultiDict[Enum_OptionType, Option]') -> None: ...
|
152
|
+
|
153
|
+
|
154
|
+
@info_final
|
155
|
+
class IF_NameOption(Option):
|
156
|
+
"""Data model for PCAP-NG file ``if_name`` options."""
|
157
|
+
|
158
|
+
#: Interface name.
|
159
|
+
name: 'str'
|
160
|
+
|
161
|
+
if TYPE_CHECKING:
|
162
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', name: 'str') -> None: ...
|
163
|
+
|
164
|
+
|
165
|
+
@info_final
|
166
|
+
class IF_DescriptionOption(Option):
|
167
|
+
"""Data model for PCAP-NG file ``if_description`` options."""
|
168
|
+
|
169
|
+
#: Interface description.
|
170
|
+
description: 'str'
|
171
|
+
|
172
|
+
|
173
|
+
@info_final
|
174
|
+
class IF_IPv4AddrOption(Option):
|
175
|
+
"""Data model for PCAP-NG file ``if_IPv4addr`` options."""
|
176
|
+
|
177
|
+
#: IPv4 interface.
|
178
|
+
interface: 'IPv4Interface'
|
179
|
+
|
180
|
+
if TYPE_CHECKING:
|
181
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', interface: 'IPv4Interface') -> None: ...
|
182
|
+
|
183
|
+
|
184
|
+
@info_final
|
185
|
+
class IF_IPv6AddrOption(Option):
|
186
|
+
"""Data model for PCAP-NG file ``if_IPv6addr`` options."""
|
187
|
+
|
188
|
+
#: IPv6 interface.
|
189
|
+
interface: 'IPv6Interface'
|
190
|
+
|
191
|
+
if TYPE_CHECKING:
|
192
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', interface: 'IPv6Interface') -> None: ...
|
193
|
+
|
194
|
+
|
195
|
+
@info_final
|
196
|
+
class IF_MACAddrOption(Option):
|
197
|
+
"""Data model for PCAP-NG file ``if_MACaddr`` options."""
|
198
|
+
|
199
|
+
#: MAC address.
|
200
|
+
interface: 'str'
|
201
|
+
|
202
|
+
if TYPE_CHECKING:
|
203
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', interface: 'str') -> None: ...
|
204
|
+
|
205
|
+
|
206
|
+
@info_final
|
207
|
+
class IF_EUIAddrOption(Option):
|
208
|
+
"""Data model for PCAP-NG file ``if_EUIaddr`` options."""
|
209
|
+
|
210
|
+
#: EUI address.
|
211
|
+
interface: 'str'
|
212
|
+
|
213
|
+
if TYPE_CHECKING:
|
214
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', interface: 'str') -> None: ...
|
215
|
+
|
216
|
+
|
217
|
+
@info_final
|
218
|
+
class IF_SpeedOption(Option):
|
219
|
+
"""Data model for PCAP-NG file ``if_speed`` options."""
|
220
|
+
|
221
|
+
#: Interface speed, in bits per second.
|
222
|
+
speed: 'int'
|
223
|
+
|
224
|
+
if TYPE_CHECKING:
|
225
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', speed: 'int') -> None: ...
|
226
|
+
|
227
|
+
|
228
|
+
@info_final
|
229
|
+
class IF_TSResolOption(Option):
|
230
|
+
"""Data model for PCAP-NG file ``if_tsresol`` options."""
|
231
|
+
|
232
|
+
#: Time stamp resolution, in units per second.
|
233
|
+
resolution: 'int'
|
234
|
+
|
235
|
+
if TYPE_CHECKING:
|
236
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', resolution: 'int') -> None: ...
|
237
|
+
|
238
|
+
|
239
|
+
@info_final
|
240
|
+
class IF_TZoneOption(Option):
|
241
|
+
"""Data model for PCAP-NG file ``if_tzone`` options."""
|
242
|
+
|
243
|
+
#: Time zone.
|
244
|
+
timezone: 'dt_timezone'
|
245
|
+
|
246
|
+
if TYPE_CHECKING:
|
247
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', timezone: 'dt_timezone') -> None: ...
|
248
|
+
|
249
|
+
|
250
|
+
@info_final
|
251
|
+
class IF_FilterOption(Option):
|
252
|
+
"""Data model for PCAP-NG file ``if_filter`` options."""
|
253
|
+
|
254
|
+
#: Filter code.
|
255
|
+
code: 'Enum_FilterType'
|
256
|
+
#: Filter expression.
|
257
|
+
expression: 'bytes'
|
258
|
+
|
259
|
+
if TYPE_CHECKING:
|
260
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', code: 'Enum_FilterType',
|
261
|
+
expression: 'bytes') -> None: ...
|
262
|
+
|
263
|
+
|
264
|
+
@info_final
|
265
|
+
class IF_OSOption(Option):
|
266
|
+
"""Data model for PCAP-NG file ``if_os`` options."""
|
267
|
+
|
268
|
+
#: Operating system.
|
269
|
+
os: 'str'
|
270
|
+
|
271
|
+
if TYPE_CHECKING:
|
272
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', os: 'str') -> None: ...
|
273
|
+
|
274
|
+
|
275
|
+
@info_final
|
276
|
+
class IF_FCSLenOption(Option):
|
277
|
+
"""Data model for PCAP-NG file ``if_fcslen`` options."""
|
278
|
+
|
279
|
+
#: FCS length.
|
280
|
+
fcs_length: 'int'
|
281
|
+
|
282
|
+
if TYPE_CHECKING:
|
283
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', fcs_length: 'int') -> None: ...
|
284
|
+
|
285
|
+
|
286
|
+
@info_final
|
287
|
+
class IF_TSOffsetOption(Option):
|
288
|
+
"""Data model for PCAP-NG file ``if_tsoffset`` options."""
|
289
|
+
|
290
|
+
#: Timestamp offset (in seconds).
|
291
|
+
offset: 'int'
|
292
|
+
|
293
|
+
if TYPE_CHECKING:
|
294
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', offset: 'int') -> None: ...
|
295
|
+
|
296
|
+
|
297
|
+
@info_final
|
298
|
+
class IF_HardwareOption(Option):
|
299
|
+
"""Data model for PCAP-NG file ``if_hardware`` options."""
|
300
|
+
|
301
|
+
#: Hardware information.
|
302
|
+
hardware: 'str'
|
303
|
+
|
304
|
+
if TYPE_CHECKING:
|
305
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', hardware: 'str') -> None: ...
|
306
|
+
|
307
|
+
|
308
|
+
@info_final
|
309
|
+
class IF_TxSpeedOption(Option):
|
310
|
+
"""Data model for PCAP-NG file ``if_txspeed`` options."""
|
311
|
+
|
312
|
+
#: Interface transmit speed (in bits per second).
|
313
|
+
speed: 'int'
|
314
|
+
|
315
|
+
if TYPE_CHECKING:
|
316
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', speed: 'int') -> None: ...
|
317
|
+
|
318
|
+
|
319
|
+
@info_final
|
320
|
+
class IF_RxSpeedOption(Option):
|
321
|
+
"""Data model for PCAP-NG file ``if_rxspeed`` options."""
|
322
|
+
|
323
|
+
#: Interface receive speed (in bits per second).
|
324
|
+
speed: 'int'
|
325
|
+
|
326
|
+
if TYPE_CHECKING:
|
327
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', speed: 'int') -> None: ...
|
328
|
+
|
329
|
+
|
330
|
+
@info_final
|
331
|
+
class InterfaceDescriptionBlock(PCAPNG):
|
332
|
+
"""Data model for PCAP-NG Interface Description Block (IDB)."""
|
333
|
+
|
334
|
+
#: Link type.
|
335
|
+
linktype: 'Enum_LinkType'
|
336
|
+
#: Snap length.
|
337
|
+
snaplen: 'int'
|
338
|
+
#: Options.
|
339
|
+
options: 'OrderedMultiDict[Enum_OptionType, Option]'
|
340
|
+
|
341
|
+
if TYPE_CHECKING:
|
342
|
+
def __init__(self, type: 'Enum_BlockType', length: 'int', linktype: 'Enum_LinkType',
|
343
|
+
snaplen: 'int', options: 'OrderedMultiDict[Enum_OptionType, Option]') -> None: ...
|
344
|
+
|
345
|
+
|
346
|
+
@info_final
|
347
|
+
class EPB_FlagsOption(Option):
|
348
|
+
"""Data model for PCAP-NG file ``epb_flags`` options."""
|
349
|
+
|
350
|
+
#: Inbound / Outbound packet.
|
351
|
+
direction: 'PacketDirection'
|
352
|
+
#: Reception type.
|
353
|
+
reception: 'PacketReception'
|
354
|
+
#: FCS length.
|
355
|
+
fcs_len: 'int'
|
356
|
+
#: Link-layer-dependent error - CRC error (bit 24).
|
357
|
+
crc_error: 'bool'
|
358
|
+
#: Link-layer-dependent error - packet too long error (bit 25).
|
359
|
+
too_long: 'bool'
|
360
|
+
#: Link-layer-dependent error - packet too short error (bit 26).
|
361
|
+
too_short: 'bool'
|
362
|
+
#: Link-layer-dependent error - wrong Inter Frame Gap error (bit 27).
|
363
|
+
gap_error: 'bool'
|
364
|
+
#: Link-layer-dependent error - unaligned frame error (bit 28).
|
365
|
+
unaligned_error: 'bool'
|
366
|
+
#: Link-layer-dependent error - Start Frame Delimiter error (bit 29).
|
367
|
+
delimiter_error: 'bool'
|
368
|
+
#: Link-layer-dependent error - preamble error (bit 30).
|
369
|
+
preamble_error: 'bool'
|
370
|
+
#: Link-layer-dependent error - symbol error (bit 31).
|
371
|
+
symbol_error: 'bool'
|
372
|
+
|
373
|
+
if TYPE_CHECKING:
|
374
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', direction: 'PacketDirection',
|
375
|
+
reception: 'PacketReception', fcs_len: 'int', crc_error: 'bool',
|
376
|
+
too_long: 'bool', too_short: 'bool', gap_error: 'bool', unaligned_error: 'bool',
|
377
|
+
delimiter_error: 'bool', preamble_error: 'bool', symbol_error: 'bool') -> 'None': ...
|
378
|
+
|
379
|
+
|
380
|
+
@info_final
|
381
|
+
class EPB_HashOption(Option):
|
382
|
+
"""Data model for PCAP-NG ``epb_hash`` options."""
|
383
|
+
|
384
|
+
#: Hash algorithm.
|
385
|
+
algorithm: 'Enum_HashAlgorithm'
|
386
|
+
#: Hash value.
|
387
|
+
hash: 'bytes'
|
388
|
+
|
389
|
+
if TYPE_CHECKING:
|
390
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', algorithm: 'Enum_HashAlgorithm',
|
391
|
+
hash: 'bytes') -> 'None': ...
|
392
|
+
|
393
|
+
|
394
|
+
@info_final
|
395
|
+
class EPB_DropCountOption(Option):
|
396
|
+
"""Data model for PCAP-NG ``epb_dropcount`` options."""
|
397
|
+
|
398
|
+
#: Number of packets dropped by the interface.
|
399
|
+
drop_count: 'int'
|
400
|
+
|
401
|
+
if TYPE_CHECKING:
|
402
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', drop_count: 'int') -> 'None': ...
|
403
|
+
|
404
|
+
|
405
|
+
@info_final
|
406
|
+
class EPB_PacketIDOption(Option):
|
407
|
+
"""Data model for PCAP-NG ``epb_packetid`` options."""
|
408
|
+
|
409
|
+
#: Packet ID.
|
410
|
+
packet_id: 'int'
|
411
|
+
|
412
|
+
if TYPE_CHECKING:
|
413
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', packet_id: 'int') -> 'None': ...
|
414
|
+
|
415
|
+
|
416
|
+
@info_final
|
417
|
+
class EPB_QueueOption(Option):
|
418
|
+
"""Data model for PCAP-NG ``epb_queue`` options."""
|
419
|
+
|
420
|
+
#: Queue ID.
|
421
|
+
queue_id: 'int'
|
422
|
+
|
423
|
+
if TYPE_CHECKING:
|
424
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', queue_id: 'int') -> 'None': ...
|
425
|
+
|
426
|
+
|
427
|
+
@info_final
|
428
|
+
class EPB_VerdictOption(Option):
|
429
|
+
"""Data model for PCAP-NG ``epb_verdict`` options."""
|
430
|
+
|
431
|
+
#: Verdict type.
|
432
|
+
verdict: 'Enum_VerdictType'
|
433
|
+
#: Verdict value.
|
434
|
+
value: 'bytes'
|
435
|
+
|
436
|
+
if TYPE_CHECKING:
|
437
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', verdict: 'Enum_VerdictType',
|
438
|
+
value: 'bytes') -> 'None': ...
|
439
|
+
|
440
|
+
|
441
|
+
@info_final
|
442
|
+
class EnhancedPacketBlock(PCAPNG):
|
443
|
+
"""Data model for PCAP-NG Enhanced Packet Block (EPB)."""
|
444
|
+
|
445
|
+
#: Section index.
|
446
|
+
section_number: 'int'
|
447
|
+
#: Frame index.
|
448
|
+
number: 'int'
|
449
|
+
|
450
|
+
#: Interface ID.
|
451
|
+
interface_id: 'int'
|
452
|
+
#: Timestamp (in seconds).
|
453
|
+
timestamp: 'dt_type'
|
454
|
+
#: Timestamp as in UNIX epoch (in seconds).
|
455
|
+
timestamp_epoch: 'Decimal'
|
456
|
+
#: Captured packet length.
|
457
|
+
captured_len: 'int'
|
458
|
+
#: Original packet length.
|
459
|
+
original_len: 'int'
|
460
|
+
#: Options.
|
461
|
+
options: 'OrderedMultiDict[Enum_OptionType, Option]'
|
462
|
+
|
463
|
+
if TYPE_CHECKING:
|
464
|
+
#: Protocol chain.
|
465
|
+
protocols: 'str'
|
466
|
+
|
467
|
+
def __init__(self, type: 'Enum_BlockType', length: 'int', section_number: 'int',
|
468
|
+
number: 'int', interface_id: 'int', timestamp: 'dt_type',
|
469
|
+
timestamp_epoch: 'Decimal', captured_len: 'int', original_len: 'int',
|
470
|
+
options: 'OrderedMultiDict[Enum_OptionType, Option]') -> 'None': ...
|
471
|
+
|
472
|
+
|
473
|
+
@info_final
|
474
|
+
class SimplePacketBlock(PCAPNG):
|
475
|
+
"""Data model for PCAP-NG Simple Packet Block (SPB)."""
|
476
|
+
|
477
|
+
#: Section index.
|
478
|
+
section_number: 'int'
|
479
|
+
#: Frame index.
|
480
|
+
number: 'int'
|
481
|
+
|
482
|
+
#: Original packet length.
|
483
|
+
original_len: 'int'
|
484
|
+
#: Captured packet length.
|
485
|
+
captured_len: 'int'
|
486
|
+
|
487
|
+
def __post_init__(self) -> 'None':
|
488
|
+
"""Post-initialization handling."""
|
489
|
+
with localcontext(prec=64):
|
490
|
+
self.__update__(
|
491
|
+
interface_id=0,
|
492
|
+
timestamp=datetime.datetime.fromtimestamp(0, datetime.timezone.utc),
|
493
|
+
timestamp_epoch=decimal.Decimal(0),
|
494
|
+
)
|
495
|
+
|
496
|
+
if TYPE_CHECKING:
|
497
|
+
#: Protocol chain.
|
498
|
+
protocols: 'str'
|
499
|
+
|
500
|
+
#: Interface ID.
|
501
|
+
interface_id: 'int'
|
502
|
+
#: Timestamp (in seconds).
|
503
|
+
timestamp: 'dt_type'
|
504
|
+
#: Timestamp as in UNIX epoch (in seconds).
|
505
|
+
timestamp_epoch: 'Decimal'
|
506
|
+
|
507
|
+
def __init__(self, section_number: 'int', number: 'int', type: 'Enum_BlockType',
|
508
|
+
length: 'int', original_len: 'int', captured_len: 'int') -> 'None': ...
|
509
|
+
|
510
|
+
|
511
|
+
class NameResolutionRecord(Data):
|
512
|
+
"""Data model for PCAP-NG NRB records."""
|
513
|
+
|
514
|
+
#: Record type.
|
515
|
+
type: 'Enum_RecordType'
|
516
|
+
#: Record value length.
|
517
|
+
length: 'int'
|
518
|
+
|
519
|
+
|
520
|
+
@info_final
|
521
|
+
class UnknownRecord(NameResolutionRecord):
|
522
|
+
"""Data model for PCAP-NG NRB unknown records."""
|
523
|
+
|
524
|
+
#: Unknown record value.
|
525
|
+
data: 'bytes'
|
526
|
+
|
527
|
+
if TYPE_CHECKING:
|
528
|
+
def __init__(self, type: 'Enum_RecordType', length: 'int', data: 'bytes') -> 'None': ...
|
529
|
+
|
530
|
+
|
531
|
+
@info_final
|
532
|
+
class EndRecord(NameResolutionRecord):
|
533
|
+
"""Data model for PCAP-NG ``nrb_record_end`` records."""
|
534
|
+
|
535
|
+
if TYPE_CHECKING:
|
536
|
+
def __init__(self, type: 'Enum_RecordType', length: 'int') -> 'None': ...
|
537
|
+
|
538
|
+
|
539
|
+
@info_final
|
540
|
+
class IPv4Record(NameResolutionRecord):
|
541
|
+
"""Data model for PCAP-NG ``nrb_record_ipv4`` records."""
|
542
|
+
|
543
|
+
#: IPv4 address.
|
544
|
+
ip: 'IPv4Address'
|
545
|
+
#: Name resolution data.
|
546
|
+
records: 'tuple[str, ...]'
|
547
|
+
|
548
|
+
if TYPE_CHECKING:
|
549
|
+
def __init__(self, type: 'Enum_RecordType', length: 'int', ip: 'IPv4Address',
|
550
|
+
records: 'tuple[str, ...]') -> 'None': ...
|
551
|
+
|
552
|
+
|
553
|
+
@info_final
|
554
|
+
class IPv6Record(NameResolutionRecord):
|
555
|
+
"""Data model for PCAP-NG ``nrb_record_ipv6`` records."""
|
556
|
+
|
557
|
+
#: IPv6 address.
|
558
|
+
ip: 'IPv6Address'
|
559
|
+
#: Name resolution data.
|
560
|
+
records: 'tuple[str, ...]'
|
561
|
+
|
562
|
+
if TYPE_CHECKING:
|
563
|
+
def __init__(self, type: 'Enum_RecordType', length: 'int', ip: 'IPv6Address',
|
564
|
+
records: 'tuple[str, ...]') -> 'None': ...
|
565
|
+
|
566
|
+
|
567
|
+
@info_final
|
568
|
+
class NS_DNSNameOption(Option):
|
569
|
+
"""Data model for PCAP-NG ``ns_dnsname`` option."""
|
570
|
+
|
571
|
+
#: DNS name.
|
572
|
+
name: 'str'
|
573
|
+
|
574
|
+
if TYPE_CHECKING:
|
575
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', name: 'str') -> 'None': ...
|
576
|
+
|
577
|
+
|
578
|
+
@info_final
|
579
|
+
class NS_DNSIP4AddrOption(Option):
|
580
|
+
"""Data model for PCAP-NG ``ns_dnsip4addr`` option."""
|
581
|
+
|
582
|
+
#: IPv4 address.
|
583
|
+
ip: 'IPv4Address'
|
584
|
+
|
585
|
+
if TYPE_CHECKING:
|
586
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', ip: 'IPv4Address') -> 'None': ...
|
587
|
+
|
588
|
+
|
589
|
+
@info_final
|
590
|
+
class NS_DNSIP6AddrOption(Option):
|
591
|
+
"""Data model for PCAP-NG ``ns_dnsip6addr`` option."""
|
592
|
+
|
593
|
+
#: IPv6 address.
|
594
|
+
ip: 'IPv6Address'
|
595
|
+
|
596
|
+
if TYPE_CHECKING:
|
597
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', ip: 'IPv6Address') -> 'None': ...
|
598
|
+
|
599
|
+
|
600
|
+
@info_final
|
601
|
+
class NameResolutionBlock(PCAPNG):
|
602
|
+
"""Data model for PCAP-NG Name Resolution Block (NRB)."""
|
603
|
+
|
604
|
+
#: Records.
|
605
|
+
records: 'OrderedMultiDict[Enum_RecordType, NameResolutionRecord]'
|
606
|
+
#: Options.
|
607
|
+
options: 'OrderedMultiDict[Enum_OptionType, Option]'
|
608
|
+
|
609
|
+
def __post_init__(self) -> 'None':
|
610
|
+
"""Post-initialization handling."""
|
611
|
+
mapping = MultiDict() # type: MultiDict[IPv4Address | IPv6Address, str]
|
612
|
+
reverse_mapping = MultiDict() # type: MultiDict[str, IPv4Address | IPv6Address]
|
613
|
+
|
614
|
+
for record in self.records:
|
615
|
+
if isinstance(record, (IPv4Record, IPv6Record)):
|
616
|
+
for name in record.names:
|
617
|
+
mapping.add(record.ip, name)
|
618
|
+
reverse_mapping.add(name, record.ip)
|
619
|
+
|
620
|
+
self.__update__(
|
621
|
+
mapping=mapping,
|
622
|
+
reverse_mapping=reverse_mapping,
|
623
|
+
)
|
624
|
+
|
625
|
+
if TYPE_CHECKING:
|
626
|
+
#: Name resolution mapping (IP address -> name).
|
627
|
+
mapping: 'MultiDict[IPv4Address | IPv6Address, str]'
|
628
|
+
#: Name resolution mapping (name -> IP address).
|
629
|
+
reverse_mapping: 'MultiDict[str, IPv4Address | IPv6Address]'
|
630
|
+
|
631
|
+
def __init__(self, type: 'Enum_BlockType', length: 'int',
|
632
|
+
records: 'OrderedMultiDict[Enum_RecordType, NameResolutionRecord]',
|
633
|
+
options: 'OrderedMultiDict[Enum_OptionType, Option]') -> 'None': ...
|
634
|
+
|
635
|
+
|
636
|
+
@info_final
|
637
|
+
class ISB_StartTimeOption(Option):
|
638
|
+
"""Data model for PCAP-NG ``isb_starttime`` option."""
|
639
|
+
|
640
|
+
#: Start time.
|
641
|
+
timestamp: 'dt_type'
|
642
|
+
#: Start time as in UNIX epoch (in seconds).
|
643
|
+
timestamp_epoch: 'Decimal'
|
644
|
+
|
645
|
+
if TYPE_CHECKING:
|
646
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', timestamp: 'dt_type',
|
647
|
+
timestamp_epoch: 'Decimal') -> 'None': ...
|
648
|
+
|
649
|
+
|
650
|
+
@info_final
|
651
|
+
class ISB_EndTimeOption(Option):
|
652
|
+
"""Data model for PCAP-NG ``isb_endtime`` option."""
|
653
|
+
|
654
|
+
#: End time.
|
655
|
+
timestamp: 'dt_type'
|
656
|
+
#: End time as in UNIX epoch (in seconds).
|
657
|
+
timestamp_epoch: 'Decimal'
|
658
|
+
|
659
|
+
if TYPE_CHECKING:
|
660
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', timestamp: 'dt_type',
|
661
|
+
timestamp_epoch: 'Decimal') -> 'None': ...
|
662
|
+
|
663
|
+
|
664
|
+
@info_final
|
665
|
+
class ISB_IFRecvOption(Option):
|
666
|
+
"""Data model for PCAP-NG ``isb_ifrecv`` option."""
|
667
|
+
|
668
|
+
#: Number of packets received.
|
669
|
+
packets: 'int'
|
670
|
+
|
671
|
+
if TYPE_CHECKING:
|
672
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', packets: 'int') -> 'None': ...
|
673
|
+
|
674
|
+
|
675
|
+
@info_final
|
676
|
+
class ISB_IFDropOption(Option):
|
677
|
+
"""Data model for PCAP-NG ``isb_ifdrop`` option."""
|
678
|
+
|
679
|
+
#: Number of packets dropped.
|
680
|
+
packets: 'int'
|
681
|
+
|
682
|
+
if TYPE_CHECKING:
|
683
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', packets: 'int') -> 'None': ...
|
684
|
+
|
685
|
+
|
686
|
+
@info_final
|
687
|
+
class ISB_FilterAcceptOption(Option):
|
688
|
+
"""Data model for PCAP-NG ``isb_filteraccept`` option."""
|
689
|
+
|
690
|
+
#: Number of packets accepted by the filter.
|
691
|
+
packets: 'int'
|
692
|
+
|
693
|
+
if TYPE_CHECKING:
|
694
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', packets: 'int') -> 'None': ...
|
695
|
+
|
696
|
+
|
697
|
+
@info_final
|
698
|
+
class ISB_OSDropOption(Option):
|
699
|
+
"""Data model for PCAP-NG ``isb_osdrop`` option."""
|
700
|
+
|
701
|
+
#: Number of packets dropped by the operating system.
|
702
|
+
packets: 'int'
|
703
|
+
|
704
|
+
if TYPE_CHECKING:
|
705
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', packets: 'int') -> 'None': ...
|
706
|
+
|
707
|
+
|
708
|
+
@info_final
|
709
|
+
class ISB_UsrDelivOption(Option):
|
710
|
+
"""Data model for PCAP-NG ``isb_usrdeliv`` option."""
|
711
|
+
|
712
|
+
#: Number of packets delivered to the user.
|
713
|
+
packets: 'int'
|
714
|
+
|
715
|
+
if TYPE_CHECKING:
|
716
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', packets: 'int') -> 'None': ...
|
717
|
+
|
718
|
+
|
719
|
+
@info_final
|
720
|
+
class InterfaceStatisticsBlock(PCAPNG):
|
721
|
+
"""Data model for PCAP-NG Interface Statistics Block (ISB)."""
|
722
|
+
|
723
|
+
#: Interface ID.
|
724
|
+
interface_id: 'int'
|
725
|
+
#: Timestamp.
|
726
|
+
timestamp: 'dt_type'
|
727
|
+
#: Timestamp as in UNIX epoch (in seconds).
|
728
|
+
timestamp_epoch: 'Decimal'
|
729
|
+
#: Options.
|
730
|
+
options: 'OrderedMultiDict[Enum_OptionType, Option]'
|
731
|
+
|
732
|
+
if TYPE_CHECKING:
|
733
|
+
def __init__(self, type: 'Enum_BlockType', length: 'int', interface_id: 'int', timestamp: 'dt_type',
|
734
|
+
timestamp_epoch: 'Decimal', options: 'OrderedMultiDict[Enum_OptionType, Option]') -> 'None': ...
|
735
|
+
|
736
|
+
|
737
|
+
@info_final
|
738
|
+
class SystemdJournalExportBlock(PCAPNG):
|
739
|
+
"""Data model for PCAP-NG :manpage:`systemd(1)` Journal Export Block."""
|
740
|
+
|
741
|
+
#: Journal entry.
|
742
|
+
data: 'tuple[OrderedMultiDict[str, str | bytes], ...]'
|
743
|
+
|
744
|
+
if TYPE_CHECKING:
|
745
|
+
def __init__(self, type: 'Enum_BlockType', length: 'int',
|
746
|
+
data: 'tuple[OrderedMultiDict[str, str | bytes], ...]') -> 'None': ...
|
747
|
+
|
748
|
+
|
749
|
+
class DSBSecrets(Data):
|
750
|
+
"""Data model for DSB secrets data."""
|
751
|
+
|
752
|
+
|
753
|
+
@info_final
|
754
|
+
class UnknownSecrets(DSBSecrets):
|
755
|
+
"""Data model for unknown DSB secrets."""
|
756
|
+
|
757
|
+
#: Secrets data.
|
758
|
+
data: 'bytes'
|
759
|
+
|
760
|
+
if TYPE_CHECKING:
|
761
|
+
def __init__(self, data: 'bytes') -> 'None': ...
|
762
|
+
|
763
|
+
|
764
|
+
@info_final
|
765
|
+
class TLSKeyLog(DSBSecrets):
|
766
|
+
"""Data model for TLS key log DSB secrets."""
|
767
|
+
|
768
|
+
#: TLS key log entries.
|
769
|
+
entries: 'dict[TLSKeyLabel, OrderedMultiDict[bytes, bytes]]'
|
770
|
+
|
771
|
+
if TYPE_CHECKING:
|
772
|
+
def __init__(self, entries: 'dict[TLSKeyLabel, OrderedMultiDict[bytes, bytes]]') -> 'None': ...
|
773
|
+
|
774
|
+
|
775
|
+
@info_final
|
776
|
+
class WireGuardKeyLog(DSBSecrets):
|
777
|
+
"""Data model for WireGuard key DSB secrets."""
|
778
|
+
|
779
|
+
#: WireGuard Key Log entries.
|
780
|
+
entries: 'OrderedMultiDict[WireGuardKeyLabel, bytes]'
|
781
|
+
|
782
|
+
if TYPE_CHECKING:
|
783
|
+
def __init__(self, entries: 'OrderedMultiDict[WireGuardKeyLabel, bytes]') -> 'None': ...
|
784
|
+
|
785
|
+
|
786
|
+
@info_final
|
787
|
+
class ZigBeeNWKKey(DSBSecrets):
|
788
|
+
"""Data model for ZigBEE NWK Key and ZigBee PANID secrets data."""
|
789
|
+
|
790
|
+
#: AES-128 NKW key.
|
791
|
+
nwk_key: 'bytes'
|
792
|
+
#: PAN ID.
|
793
|
+
pan_id: 'int'
|
794
|
+
|
795
|
+
if TYPE_CHECKING:
|
796
|
+
def __init__(self, nwk_key: 'bytes', pan_id: 'int') -> 'None': ...
|
797
|
+
|
798
|
+
|
799
|
+
@info_final
|
800
|
+
class ZigBeeAPSKey(DSBSecrets):
|
801
|
+
"""Data model for ZigBEE APS Key secrets data."""
|
802
|
+
|
803
|
+
#: AES-128 APS key.
|
804
|
+
aps_key: 'bytes'
|
805
|
+
#: PAN ID.
|
806
|
+
pan_id: 'int'
|
807
|
+
#: Node short address.
|
808
|
+
short_address: 'int'
|
809
|
+
|
810
|
+
if TYPE_CHECKING:
|
811
|
+
def __init__(self, aps_key: 'bytes', pan_id: 'int', short_address: 'int') -> 'None': ...
|
812
|
+
|
813
|
+
|
814
|
+
@info_final
|
815
|
+
class DecryptionSecretsBlock(PCAPNG):
|
816
|
+
"""Data model for PCAP-NG Decryption Secrets Block (DSB)."""
|
817
|
+
|
818
|
+
#: Secrets type.
|
819
|
+
secrets_type: 'Enum_SecretsType'
|
820
|
+
#: Secrets length.
|
821
|
+
secrets_length: 'int'
|
822
|
+
#: Secrets data.
|
823
|
+
secrets_data: 'DSBSecrets'
|
824
|
+
#: Options.
|
825
|
+
options: 'OrderedMultiDict[Enum_OptionType, Option]'
|
826
|
+
|
827
|
+
if TYPE_CHECKING:
|
828
|
+
def __init__(self, type: 'Enum_BlockType', length: 'int', secrets_type: 'Enum_SecretsType',
|
829
|
+
secrets_length: 'int', secrets_data: 'DSBSecrets',
|
830
|
+
options: 'OrderedMultiDict[Enum_OptionType, Option]') -> 'None': ...
|
831
|
+
|
832
|
+
|
833
|
+
@info_final
|
834
|
+
class CustomBlock(PCAPNG):
|
835
|
+
"""Data model for PCAP-NG Custom Block (CB)."""
|
836
|
+
|
837
|
+
#: Private enterprise number.
|
838
|
+
pen: 'int'
|
839
|
+
#: Custom block data (incl. data, options and padding).
|
840
|
+
data: 'bytes'
|
841
|
+
|
842
|
+
if TYPE_CHECKING:
|
843
|
+
def __init__(self, type: 'Enum_BlockType', length: 'int', pen: 'int', data: 'bytes') -> 'None': ...
|
844
|
+
|
845
|
+
|
846
|
+
@info_final
|
847
|
+
class PACK_FlagsOption(Option):
|
848
|
+
"""Data model for PCAP-NG file ``pack_flags`` options."""
|
849
|
+
|
850
|
+
#: Inbound / Outbound packet.
|
851
|
+
direction: 'PacketDirection'
|
852
|
+
#: Reception type.
|
853
|
+
reception: 'PacketReception'
|
854
|
+
#: FCS length.
|
855
|
+
fcs_len: 'int'
|
856
|
+
#: Link-layer-dependent error - CRC error (bit 24).
|
857
|
+
crc_error: 'bool'
|
858
|
+
#: Link-layer-dependent error - packet too long error (bit 25).
|
859
|
+
too_long: 'bool'
|
860
|
+
#: Link-layer-dependent error - packet too short error (bit 26).
|
861
|
+
too_short: 'bool'
|
862
|
+
#: Link-layer-dependent error - wrong Inter Frame Gap error (bit 27).
|
863
|
+
gap_error: 'bool'
|
864
|
+
#: Link-layer-dependent error - unaligned frame error (bit 28).
|
865
|
+
unaligned_error: 'bool'
|
866
|
+
#: Link-layer-dependent error - Start Frame Delimiter error (bit 29).
|
867
|
+
delimiter_error: 'bool'
|
868
|
+
#: Link-layer-dependent error - preamble error (bit 30).
|
869
|
+
preamble_error: 'bool'
|
870
|
+
#: Link-layer-dependent error - symbol error (bit 31).
|
871
|
+
symbol_error: 'bool'
|
872
|
+
|
873
|
+
if TYPE_CHECKING:
|
874
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', direction: 'PacketDirection',
|
875
|
+
reception: 'PacketReception', fcs_len: 'int', crc_error: 'bool',
|
876
|
+
too_long: 'bool', too_short: 'bool', gap_error: 'bool', unaligned_error: 'bool',
|
877
|
+
delimiter_error: 'bool', preamble_error: 'bool', symbol_error: 'bool') -> 'None': ...
|
878
|
+
|
879
|
+
|
880
|
+
@info_final
|
881
|
+
class PACK_HashOption(Option):
|
882
|
+
"""Data model for PCAP-NG ``pack_hash`` options."""
|
883
|
+
|
884
|
+
#: Hash algorithm.
|
885
|
+
algorithm: 'Enum_HashAlgorithm'
|
886
|
+
#: Hash value.
|
887
|
+
hash: 'bytes'
|
888
|
+
|
889
|
+
if TYPE_CHECKING:
|
890
|
+
def __init__(self, type: 'Enum_OptionType', length: 'int', algorithm: 'Enum_HashAlgorithm',
|
891
|
+
hash: 'bytes') -> 'None': ...
|
892
|
+
|
893
|
+
|
894
|
+
@info_final
|
895
|
+
class PacketBlock(PCAPNG):
|
896
|
+
"""Data model for PCAP-NG Packet Block (obsolete)."""
|
897
|
+
|
898
|
+
#: Section index.
|
899
|
+
section_number: 'int'
|
900
|
+
#: Frame index.
|
901
|
+
number: 'int'
|
902
|
+
|
903
|
+
#: Interface ID.
|
904
|
+
interface_id: 'int'
|
905
|
+
#: Drops count.
|
906
|
+
drop_count: 'int'
|
907
|
+
#: Timestamp.
|
908
|
+
timestamp: 'dt_type'
|
909
|
+
#: Timestamp as in UNIX epoch (in seconds).
|
910
|
+
timestamp_epoch: 'Decimal'
|
911
|
+
#: Captured packet length.
|
912
|
+
captured_len: 'int'
|
913
|
+
#: Original packet length.
|
914
|
+
original_len: 'int'
|
915
|
+
#: Options.
|
916
|
+
options: 'OrderedMultiDict[Enum_OptionType, Option]'
|
917
|
+
|
918
|
+
if TYPE_CHECKING:
|
919
|
+
#: Protocol chain.
|
920
|
+
protocols: 'str'
|
921
|
+
|
922
|
+
def __init__(self, type: 'Enum_BlockType', length: 'int', section_number: 'int', number: 'int',
|
923
|
+
interface_id: 'int', drop_count: 'int', timestamp: 'dt_type',
|
924
|
+
timestamp_epoch: 'Decimal', captured_length: 'int', original_length: 'int',
|
925
|
+
options: 'OrderedMultiDict[Enum_OptionType, Option]') -> 'None': ...
|