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