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,509 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
"""data model for MH 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 datetime as dt_type
|
12
|
+
from datetime import timedelta
|
13
|
+
from ipaddress import IPv6Address, IPv6Network
|
14
|
+
|
15
|
+
from pcapkit.const.mh.access_type import AccessType as Enum_AccessType
|
16
|
+
from pcapkit.const.mh.ack_status_code import ACKStatusCode as Enum_ACKStatusCode
|
17
|
+
from pcapkit.const.mh.ani_suboption import ANISuboption as Enum_ANISuboption
|
18
|
+
from pcapkit.const.mh.auth_subtype import AuthSubtype as Enum_AuthSubtype
|
19
|
+
from pcapkit.const.mh.binding_ack_flag import BindingACKFlag as Enum_BindingACKFlag
|
20
|
+
from pcapkit.const.mh.binding_error import BindingError as Enum_BindingError
|
21
|
+
from pcapkit.const.mh.binding_revocation import BindingRevocation as Enum_BindingRevocation
|
22
|
+
from pcapkit.const.mh.binding_update_flag import BindingUpdateFlag as Enum_BindingUpdateFlag
|
23
|
+
from pcapkit.const.mh.cga_extension import CGAExtension as Enum_CGAExtension
|
24
|
+
from pcapkit.const.mh.cga_type import CGAType as Enum_CGAType
|
25
|
+
from pcapkit.const.mh.dhcp_support_mode import DHCPSupportMode as Enum_DHCPSupportMode
|
26
|
+
from pcapkit.const.mh.dns_status_code import DNSStatusCode as Enum_DNSStatusCode
|
27
|
+
from pcapkit.const.mh.dsmip6_tls_packet import DSMIP6TLSPacket as Enum_DSMIP6TLSPacket
|
28
|
+
from pcapkit.const.mh.dsmipv6_home_address import DSMIPv6HomeAddress as Enum_DSMIPv6HomeAddress
|
29
|
+
from pcapkit.const.mh.enumerating_algorithm import \
|
30
|
+
EnumeratingAlgorithm as Enum_EnumeratingAlgorithm
|
31
|
+
from pcapkit.const.mh.fb_ack_status import FlowBindingACKStatus as Enum_FlowBindingACKStatus
|
32
|
+
from pcapkit.const.mh.fb_action import FlowBindingAction as Enum_FlowBindingAction
|
33
|
+
from pcapkit.const.mh.fb_indication_trigger import \
|
34
|
+
FlowBindingIndicationTrigger as Enum_FlowBindingIndicationTrigger
|
35
|
+
from pcapkit.const.mh.fb_type import FlowBindingType as Enum_FlowBindingType
|
36
|
+
from pcapkit.const.mh.flow_id_status import FlowIDStatus as Enum_FlowIDStatus
|
37
|
+
from pcapkit.const.mh.flow_id_suboption import FlowIDSuboption as Enum_FlowIDSuboption
|
38
|
+
from pcapkit.const.mh.handoff_type import HandoffType as Enum_HandoffType
|
39
|
+
from pcapkit.const.mh.handover_ack_flag import HandoverACKFlag as Enum_HandoverACKFlag
|
40
|
+
from pcapkit.const.mh.handover_ack_status import HandoverACKStatus as Enum_HandoverACKStatus
|
41
|
+
from pcapkit.const.mh.handover_initiate_flag import \
|
42
|
+
HandoverInitiateFlag as Enum_HandoverInitiateFlag
|
43
|
+
from pcapkit.const.mh.home_address_reply import HomeAddressReply as Enum_HomeAddressReply
|
44
|
+
from pcapkit.const.mh.lla_code import LLACode as Enum_LLACode
|
45
|
+
from pcapkit.const.mh.lma_mag_suboption import \
|
46
|
+
LMAControlledMAGSuboption as Enum_LMAControlledMAGSuboption
|
47
|
+
from pcapkit.const.mh.mn_group_id import MNGroupID as Enum_MNGroupID
|
48
|
+
from pcapkit.const.mh.mn_id_subtype import MNIDSubtype as Enum_MNIDSubtype
|
49
|
+
from pcapkit.const.mh.operator_id import OperatorID as Enum_OperatorID
|
50
|
+
from pcapkit.const.mh.option import Option as Enum_Option
|
51
|
+
from pcapkit.const.mh.packet import Packet
|
52
|
+
from pcapkit.const.mh.packet import Packet as Enum_Packet
|
53
|
+
from pcapkit.const.mh.qos_attribute import QoSAttribute as Enum_QoSAttribute
|
54
|
+
from pcapkit.const.mh.revocation_status_code import \
|
55
|
+
RevocationStatusCode as Enum_RevocationStatusCode
|
56
|
+
from pcapkit.const.mh.revocation_trigger import RevocationTrigger as Enum_RevocationTrigger
|
57
|
+
from pcapkit.const.mh.status_code import StatusCode as Enum_StatusCode
|
58
|
+
from pcapkit.const.mh.traffic_selector import TrafficSelector as Enum_TrafficSelector
|
59
|
+
from pcapkit.const.mh.upa_status import \
|
60
|
+
UpdateNotificationACKStatus as Enum_UpdateNotificationACKStatus
|
61
|
+
from pcapkit.const.mh.upn_reason import \
|
62
|
+
UpdateNotificationReason as Enum_UpdateNotificationReason
|
63
|
+
from pcapkit.const.reg.transtype import TransType
|
64
|
+
from pcapkit.corekit.multidict import OrderedMultiDict
|
65
|
+
from pcapkit.protocols.internet.mh import NTPTimestamp
|
66
|
+
|
67
|
+
__all__ = [
|
68
|
+
'MH',
|
69
|
+
'UnknownMessage', 'BindingRefreshRequestMessage', 'HomeTestInitMessage', 'CareofTestInitMessage',
|
70
|
+
'HomeTestMessage', 'CareofTestMessage', 'BindingUpdateMessage', 'BindingAcknowledgementMessage',
|
71
|
+
'BindingErrorMessage',
|
72
|
+
|
73
|
+
'Option',
|
74
|
+
'UnassignedOption', 'PadOption', 'BindingRefreshAdviceOption', 'AlternateCareofAddressOption',
|
75
|
+
'NonceIndicesOption', 'AuthorizationDataOption', 'MobileNetworkPrefixOption',
|
76
|
+
'LinkLayerAddressOption', 'MNIDOption', 'AuthOption', 'MesgIDOption', 'CGAParametersRequestOption',
|
77
|
+
'CGAParametersOption', 'SignatureOption', 'PermanentHomeKeygenTokenOption', 'CareofTestInitOption',
|
78
|
+
'CareofTestOption',
|
79
|
+
|
80
|
+
'CGAParameter',
|
81
|
+
|
82
|
+
'CGAExtension',
|
83
|
+
'UnknownExtension', 'MultiPrefixExtension',
|
84
|
+
|
85
|
+
]
|
86
|
+
|
87
|
+
|
88
|
+
class MH(Protocol):
|
89
|
+
"""Data model for MH protocol."""
|
90
|
+
|
91
|
+
#: Next header.
|
92
|
+
next: 'TransType'
|
93
|
+
#: Header length.
|
94
|
+
length: 'int'
|
95
|
+
#: Mobility header type.
|
96
|
+
type: 'Packet'
|
97
|
+
#: Checksum.
|
98
|
+
chksum: 'bytes'
|
99
|
+
|
100
|
+
|
101
|
+
@info_final
|
102
|
+
class UnknownMessage(MH):
|
103
|
+
"""Data model for MH unknown message type."""
|
104
|
+
|
105
|
+
#: Message data.
|
106
|
+
data: 'bytes'
|
107
|
+
|
108
|
+
if TYPE_CHECKING:
|
109
|
+
def __init__(self, next: 'TransType', length: 'int', type: 'Packet', chksum: 'bytes', data: 'bytes') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,redefined-builtin,line-too-long
|
110
|
+
|
111
|
+
|
112
|
+
@info_final
|
113
|
+
class BindingRefreshRequestMessage(MH):
|
114
|
+
"""Data model for MH Binding Refresh Request (BRR) message type."""
|
115
|
+
|
116
|
+
#: Mobility options.
|
117
|
+
options: 'OrderedMultiDict[Enum_Option, Option]'
|
118
|
+
|
119
|
+
if TYPE_CHECKING:
|
120
|
+
def __init__(self, next: 'TransType', length: 'int', type: 'Packet', chksum: 'bytes',
|
121
|
+
options: 'OrderedMultiDict[Enum_Option, Option]') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,redefined-builtin,line-too-long
|
122
|
+
|
123
|
+
|
124
|
+
@info_final
|
125
|
+
class HomeTestInitMessage(MH):
|
126
|
+
"""Data modelf for MH Home Test Init (HoTI) message type."""
|
127
|
+
|
128
|
+
#: Home init cookie.
|
129
|
+
cookie: 'bytes'
|
130
|
+
#: Mobility options.
|
131
|
+
options: 'OrderedMultiDict[Enum_Option, Option]'
|
132
|
+
|
133
|
+
if TYPE_CHECKING:
|
134
|
+
def __init__(self, next: 'TransType', length: 'int', type: 'Packet', chksum: 'bytes',
|
135
|
+
cookie: 'bytes', options: 'OrderedMultiDict[Enum_Option, Option]') -> 'None': ...
|
136
|
+
|
137
|
+
|
138
|
+
@info_final
|
139
|
+
class CareofTestInitMessage(MH):
|
140
|
+
"""Data model for MH Care-of Test Init (CoTI) message type."""
|
141
|
+
|
142
|
+
#: Care-of init cookie.
|
143
|
+
cookie: 'bytes'
|
144
|
+
#: Mobility options.
|
145
|
+
options: 'OrderedMultiDict[Enum_Option, Option]'
|
146
|
+
|
147
|
+
if TYPE_CHECKING:
|
148
|
+
def __init__(self, next: 'TransType', length: 'int', type: 'Packet', chksum: 'bytes',
|
149
|
+
cookie: 'bytes', options: 'OrderedMultiDict[Enum_Option, Option]') -> 'None': ...
|
150
|
+
|
151
|
+
|
152
|
+
@info_final
|
153
|
+
class HomeTestMessage(MH):
|
154
|
+
"""Data model for MH Home Test (HoT) message type."""
|
155
|
+
|
156
|
+
#: Home nonce index.
|
157
|
+
nonce_index: 'int'
|
158
|
+
#: Home init cookie.
|
159
|
+
cookie: 'bytes'
|
160
|
+
#: Home keygen token.
|
161
|
+
token: 'bytes'
|
162
|
+
#: Mobility options.
|
163
|
+
options: 'OrderedMultiDict[Enum_Option, Option]'
|
164
|
+
|
165
|
+
if TYPE_CHECKING:
|
166
|
+
def __init__(self, next: 'TransType', length: 'int', type: 'Packet', chksum: 'bytes',
|
167
|
+
nonce_index: 'int', cookie: 'bytes', token: 'bytes',
|
168
|
+
options: 'OrderedMultiDict[Enum_Option, Option]') -> 'None': ...
|
169
|
+
|
170
|
+
|
171
|
+
@info_final
|
172
|
+
class CareofTestMessage(MH):
|
173
|
+
"""Data model for MH Care-of Test (CoT) message type."""
|
174
|
+
|
175
|
+
#: Care-of nonce index.
|
176
|
+
nonce_index: 'int'
|
177
|
+
#: Care-of init cookie.
|
178
|
+
cookie: 'bytes'
|
179
|
+
#: Care-of keygen token.
|
180
|
+
token: 'bytes'
|
181
|
+
#: Mobility options.
|
182
|
+
options: 'OrderedMultiDict[Enum_Option, Option]'
|
183
|
+
|
184
|
+
if TYPE_CHECKING:
|
185
|
+
def __init__(self, next: 'TransType', length: 'int', type: 'Packet', chksum: 'bytes',
|
186
|
+
nonce_index: 'int', cookie: 'bytes', token: 'bytes',
|
187
|
+
options: 'OrderedMultiDict[Enum_Option, Option]') -> 'None': ...
|
188
|
+
|
189
|
+
|
190
|
+
@info_final
|
191
|
+
class BindingUpdateMessage(MH):
|
192
|
+
"""Data model for MH Binding Update message type."""
|
193
|
+
|
194
|
+
#: Sequence number.
|
195
|
+
seq: 'int'
|
196
|
+
#: Acknowledge flag.
|
197
|
+
ack: 'bool'
|
198
|
+
#: home registration flag.
|
199
|
+
home: 'bool'
|
200
|
+
#: Link-local address compability flag.
|
201
|
+
lla_compat: 'bool'
|
202
|
+
#: Key management mobility capability flag.
|
203
|
+
key_mngt: 'bool'
|
204
|
+
#: Lifetime.
|
205
|
+
lifetime: 'timedelta'
|
206
|
+
#: Mobility options.
|
207
|
+
options: 'OrderedMultiDict[Enum_Option, Option]'
|
208
|
+
|
209
|
+
if TYPE_CHECKING:
|
210
|
+
def __init__(self, next: 'TransType', length: 'int', type: 'Packet', chksum: 'bytes',
|
211
|
+
seq: 'int', ack: 'bool', home: 'bool', lla_compat: 'bool', key_mngt: 'bool',
|
212
|
+
lifetime: 'timedelta', options: 'OrderedMultiDict[Enum_Option, Option]') -> 'None': ...
|
213
|
+
|
214
|
+
|
215
|
+
@info_final
|
216
|
+
class BindingAcknowledgementMessage(MH):
|
217
|
+
"""Data model for MH Binding Acknowledge (BA) message type."""
|
218
|
+
|
219
|
+
#: Status.
|
220
|
+
status: 'Enum_StatusCode'
|
221
|
+
#: Key management mobility capability flag.
|
222
|
+
key_mngt: 'bool'
|
223
|
+
#: Sequence number.
|
224
|
+
seq: 'int'
|
225
|
+
#: Lifetime.
|
226
|
+
lifetime: 'timedelta'
|
227
|
+
#: Mobility options.
|
228
|
+
options: 'OrderedMultiDict[Enum_Option, Option]'
|
229
|
+
|
230
|
+
if TYPE_CHECKING:
|
231
|
+
def __init__(self, next: 'TransType', length: 'int', type: 'Packet', chksum: 'bytes',
|
232
|
+
status: 'Enum_StatusCode', key_mngt: 'bool', seq: 'int', lifetime: 'timedelta',
|
233
|
+
options: 'OrderedMultiDict[Enum_Option, Option]') -> 'None': ...
|
234
|
+
|
235
|
+
|
236
|
+
@info_final
|
237
|
+
class BindingErrorMessage(MH):
|
238
|
+
"""Data model for MH Binding Error (BE) message type."""
|
239
|
+
|
240
|
+
#: Status.
|
241
|
+
status: 'Enum_BindingError'
|
242
|
+
#: Home address.
|
243
|
+
home: 'IPv6Address'
|
244
|
+
#: Mobility options.
|
245
|
+
options: 'OrderedMultiDict[Enum_Option, Option]'
|
246
|
+
|
247
|
+
if TYPE_CHECKING:
|
248
|
+
def __init__(self, next: 'TransType', length: 'int', type: 'Packet', chksum: 'bytes',
|
249
|
+
status: 'Enum_BindingError', home: 'IPv6Address',
|
250
|
+
options: 'OrderedMultiDict[Enum_Option, Option]') -> 'None': ...
|
251
|
+
|
252
|
+
|
253
|
+
# TODO: Implement other message types.
|
254
|
+
|
255
|
+
|
256
|
+
class Option(Data):
|
257
|
+
"""Data model for MH options."""
|
258
|
+
|
259
|
+
#: Option type.
|
260
|
+
type: 'Enum_Option'
|
261
|
+
#: Option length (incl. type and length fields).
|
262
|
+
length: 'int'
|
263
|
+
|
264
|
+
|
265
|
+
@info_final
|
266
|
+
class UnassignedOption(Option):
|
267
|
+
"""Data model for unassigned MH options."""
|
268
|
+
|
269
|
+
#: Option data.
|
270
|
+
data: 'bytes'
|
271
|
+
|
272
|
+
if TYPE_CHECKING:
|
273
|
+
def __init__(self, type: 'Enum_Option', length: 'int', data: 'bytes') -> 'None': ...
|
274
|
+
|
275
|
+
|
276
|
+
@info_final
|
277
|
+
class PadOption(Option):
|
278
|
+
"""Data model for Pad option."""
|
279
|
+
|
280
|
+
if TYPE_CHECKING:
|
281
|
+
def __init__(self, type: 'Enum_Option', length: 'int') -> 'None': ...
|
282
|
+
|
283
|
+
|
284
|
+
@info_final
|
285
|
+
class BindingRefreshAdviceOption(Option):
|
286
|
+
"""Data model for Binding Refresh Advice option."""
|
287
|
+
|
288
|
+
#: Refresh interval.
|
289
|
+
interval: 'int'
|
290
|
+
|
291
|
+
if TYPE_CHECKING:
|
292
|
+
def __init__(self, type: 'Enum_Option', length: 'int', interval: 'int') -> 'None': ...
|
293
|
+
|
294
|
+
|
295
|
+
@info_final
|
296
|
+
class AlternateCareofAddressOption(Option):
|
297
|
+
"""Data model for Alternate Care-of Address option."""
|
298
|
+
|
299
|
+
#: Alternate care-of address.
|
300
|
+
address: 'IPv6Address'
|
301
|
+
|
302
|
+
if TYPE_CHECKING:
|
303
|
+
def __init__(self, type: 'Enum_Option', length: 'int', address: 'IPv6Address') -> 'None': ...
|
304
|
+
|
305
|
+
|
306
|
+
@info_final
|
307
|
+
class NonceIndicesOption(Option):
|
308
|
+
"""Data model for Nonce Indices option."""
|
309
|
+
|
310
|
+
#: Home nonce index.
|
311
|
+
home: 'int'
|
312
|
+
#: Care-of nonce index.
|
313
|
+
careof: 'int'
|
314
|
+
|
315
|
+
if TYPE_CHECKING:
|
316
|
+
def __init__(self, type: 'Enum_Option', length: 'int', home: 'int', careof: 'int') -> 'None': ...
|
317
|
+
|
318
|
+
|
319
|
+
@info_final
|
320
|
+
class AuthorizationDataOption(Option):
|
321
|
+
"""Data model for Binding Authorization Data option."""
|
322
|
+
|
323
|
+
#: Authenticator.
|
324
|
+
data: 'bytes'
|
325
|
+
|
326
|
+
if TYPE_CHECKING:
|
327
|
+
def __init__(self, type: 'Enum_Option', length: 'int', data: 'bytes') -> 'None': ...
|
328
|
+
|
329
|
+
|
330
|
+
@info_final
|
331
|
+
class MobileNetworkPrefixOption(Option):
|
332
|
+
"""Data model for Mobile Network Prefix option."""
|
333
|
+
|
334
|
+
#: Mobile Network Prefix.
|
335
|
+
prefix: 'IPv6Network'
|
336
|
+
|
337
|
+
if TYPE_CHECKING:
|
338
|
+
def __init__(self, type: 'Enum_Option', length: 'int', prefix: 'IPv6Network') -> 'None': ...
|
339
|
+
|
340
|
+
|
341
|
+
@info_final
|
342
|
+
class LinkLayerAddressOption(Option):
|
343
|
+
"""Data model for MH Link-Layer Address (MH-LLA) option."""
|
344
|
+
|
345
|
+
#: Option code.
|
346
|
+
code: 'Enum_LLACode'
|
347
|
+
#: Link-layer address (LLA).
|
348
|
+
lla: 'bytes'
|
349
|
+
|
350
|
+
if TYPE_CHECKING:
|
351
|
+
def __init__(self, type: 'Enum_Option', length: 'int', code: 'Enum_LLACode', lla: 'bytes') -> 'None': ...
|
352
|
+
|
353
|
+
|
354
|
+
@info_final
|
355
|
+
class MNIDOption(Option):
|
356
|
+
"""Data model for MN-ID option."""
|
357
|
+
|
358
|
+
#: Subtype.
|
359
|
+
subtype: 'Enum_MNIDSubtype'
|
360
|
+
#: Identifier.
|
361
|
+
identifier: 'bytes | str | IPv6Address'
|
362
|
+
|
363
|
+
if TYPE_CHECKING:
|
364
|
+
def __init__(self, type: 'Enum_Option', length: 'int', subtype: 'Enum_MNIDSubtype', identifier: 'bytes | str | IPv6Address') -> 'None': ...
|
365
|
+
|
366
|
+
|
367
|
+
@info_final
|
368
|
+
class AuthOption(Option):
|
369
|
+
"""Data model for Mobility Message Authentication option."""
|
370
|
+
|
371
|
+
#: Subtype.
|
372
|
+
subtype: 'Enum_AuthSubtype'
|
373
|
+
#: Mobility SPI.
|
374
|
+
spi: 'int'
|
375
|
+
#: Authentication data.
|
376
|
+
data: 'bytes'
|
377
|
+
|
378
|
+
if TYPE_CHECKING:
|
379
|
+
def __init__(self, type: 'Enum_Option', length: 'int', subtype: 'Enum_AuthSubtype', spi: 'int', data: 'bytes') -> 'None': ...
|
380
|
+
|
381
|
+
|
382
|
+
@info_final
|
383
|
+
class MesgIDOption(Option):
|
384
|
+
"""Data model for Mobility Message Replay Protection option."""
|
385
|
+
|
386
|
+
#: Timestamp.
|
387
|
+
timestamp: 'dt_type'
|
388
|
+
#: NTP timestamp, c.f., :rfc:`1305`.
|
389
|
+
ntp_timestamp: 'NTPTimestamp'
|
390
|
+
|
391
|
+
if TYPE_CHECKING:
|
392
|
+
def __init__(self, type: 'Enum_Option', length: 'int', timestamp: 'dt_type', ntp_timestamp: 'NTPTimestamp') -> 'None': ...
|
393
|
+
|
394
|
+
|
395
|
+
@info_final
|
396
|
+
class CGAParametersRequestOption(Option):
|
397
|
+
"""Data model for CGA Parameters Request option."""
|
398
|
+
|
399
|
+
if TYPE_CHECKING:
|
400
|
+
def __init__(self, type: 'Enum_Option', length: 'int') -> 'None': ...
|
401
|
+
|
402
|
+
|
403
|
+
class CGAExtension(Data):
|
404
|
+
"""Data model for CGA extension."""
|
405
|
+
|
406
|
+
#: Extension type.
|
407
|
+
type: 'Enum_CGAExtension'
|
408
|
+
#: Extension length.
|
409
|
+
length: 'int'
|
410
|
+
|
411
|
+
|
412
|
+
@info_final
|
413
|
+
class UnknownExtension(CGAExtension):
|
414
|
+
"""Data model for unknown CGA extensions."""
|
415
|
+
|
416
|
+
#: Extension data.
|
417
|
+
data: 'bytes'
|
418
|
+
|
419
|
+
if TYPE_CHECKING:
|
420
|
+
def __init__(self, type: 'Enum_CGAExtension', length: 'int', data: 'bytes') -> 'None': ...
|
421
|
+
|
422
|
+
|
423
|
+
@info_final
|
424
|
+
class MultiPrefixExtension(CGAExtension):
|
425
|
+
"""Data model for Multi-Prefix CGA extension."""
|
426
|
+
|
427
|
+
#: P flag. Set if a public key is included in the Public Key field of
|
428
|
+
#: the CGA Parameter Data Structure, reset otherwise.
|
429
|
+
flag: 'bool'
|
430
|
+
#: Prefixes.
|
431
|
+
prefixes: 'tuple[int, ...]'
|
432
|
+
|
433
|
+
if TYPE_CHECKING:
|
434
|
+
def __init__(self, type: 'Enum_CGAExtension', length: 'int', flag: 'bool', prefixes: 'tuple[int, ...]') -> 'None': ...
|
435
|
+
|
436
|
+
|
437
|
+
@info_final
|
438
|
+
class CGAParameter(Data):
|
439
|
+
"""Data model for CGA parameter."""
|
440
|
+
|
441
|
+
#: Modifier.
|
442
|
+
modifier: 'Enum_CGAType'
|
443
|
+
#: Subnet prefix.
|
444
|
+
prefix: 'int'
|
445
|
+
#: Collision count.
|
446
|
+
collision_count: 'int'
|
447
|
+
#: Publick key (ASN.1 encoded).
|
448
|
+
public_key: 'bytes'
|
449
|
+
#: Extension fields.
|
450
|
+
extensions: 'OrderedMultiDict[Enum_CGAExtension, CGAExtension]'
|
451
|
+
|
452
|
+
if TYPE_CHECKING:
|
453
|
+
def __init__(self, modifier: 'Enum_CGAType', prefix: 'int', collision_count: 'int', public_key: 'bytes',
|
454
|
+
extensions: 'OrderedMultiDict[Enum_CGAExtension, CGAExtension]') -> 'None': ...
|
455
|
+
|
456
|
+
|
457
|
+
@info_final
|
458
|
+
class CGAParametersOption(Option):
|
459
|
+
"""Data model for CGA Parameters option."""
|
460
|
+
|
461
|
+
#: CGA parameters, c.f., :rfc:`3972`.
|
462
|
+
parameters: 'tuple[CGAParameter, ...]'
|
463
|
+
|
464
|
+
if TYPE_CHECKING:
|
465
|
+
def __init__(self, type: 'Enum_Option', length: 'int', parameters: 'tuple[CGAParameter, ...]') -> 'None': ...
|
466
|
+
|
467
|
+
|
468
|
+
@info_final
|
469
|
+
class SignatureOption(Option):
|
470
|
+
"""Data model for MH Signature option."""
|
471
|
+
|
472
|
+
#: Signature.
|
473
|
+
signature: 'bytes'
|
474
|
+
|
475
|
+
if TYPE_CHECKING:
|
476
|
+
def __init__(self, type: 'Enum_Option', length: 'int', signature: 'bytes') -> 'None': ...
|
477
|
+
|
478
|
+
|
479
|
+
@info_final
|
480
|
+
class PermanentHomeKeygenTokenOption(Option):
|
481
|
+
"""Data model for Permanent Home Keygen Token option."""
|
482
|
+
|
483
|
+
#: Permanent home keygen token.
|
484
|
+
token: 'bytes'
|
485
|
+
|
486
|
+
if TYPE_CHECKING:
|
487
|
+
def __init__(self, type: 'Enum_Option', length: 'int', token: 'bytes') -> 'None': ...
|
488
|
+
|
489
|
+
|
490
|
+
@info_final
|
491
|
+
class CareofTestInitOption(Option):
|
492
|
+
"""Header schema for MH Care-of Test Init options."""
|
493
|
+
|
494
|
+
if TYPE_CHECKING:
|
495
|
+
def __init__(self, type: 'Enum_Option', length: 'int') -> 'None': ...
|
496
|
+
|
497
|
+
|
498
|
+
@info_final
|
499
|
+
class CareofTestOption(Option):
|
500
|
+
"""Header schema for MH Care-of Test options."""
|
501
|
+
|
502
|
+
#: Care-of keygen token.
|
503
|
+
token: 'bytes'
|
504
|
+
|
505
|
+
if TYPE_CHECKING:
|
506
|
+
def __init__(self, type: 'Enum_Option', length: 'int', token: 'bytes') -> 'None': ...
|
507
|
+
|
508
|
+
|
509
|
+
# TODO: Implement other options.
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
"""data models for link layer protocols"""
|
3
|
+
|
4
|
+
# Address Resolution Protocol
|
5
|
+
from pcapkit.protocols.data.link.arp import ARP
|
6
|
+
from pcapkit.protocols.data.link.arp import Address as ARP_Address
|
7
|
+
from pcapkit.protocols.data.link.arp import Type as ARP_Type
|
8
|
+
|
9
|
+
# Ethernet Protocol
|
10
|
+
from pcapkit.protocols.data.link.ethernet import Ethernet
|
11
|
+
|
12
|
+
# Open Shortest Path First
|
13
|
+
from pcapkit.protocols.data.link.ospf import OSPF
|
14
|
+
from pcapkit.protocols.data.link.ospf import \
|
15
|
+
CrytographicAuthentication as OSPF_CrytographicAuthentication
|
16
|
+
|
17
|
+
# 802.1Q Customer VLAN Tag Type
|
18
|
+
from pcapkit.protocols.data.link.vlan import TCI as VLAN_TCI
|
19
|
+
from pcapkit.protocols.data.link.vlan import VLAN
|
20
|
+
|
21
|
+
__all__ = [
|
22
|
+
# Address Resolution Protocol
|
23
|
+
'ARP', 'ARP_Address', 'ARP_Type',
|
24
|
+
|
25
|
+
# Ethernet Protocol
|
26
|
+
'Ethernet',
|
27
|
+
|
28
|
+
# Open Shortest Path First
|
29
|
+
'OSPF', 'OSPF_CrytographicAuthentication',
|
30
|
+
|
31
|
+
# 802.1Q Customer VLAN Tag Type
|
32
|
+
'VLAN', 'VLAN_TCI',
|
33
|
+
]
|
@@ -0,0 +1,74 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
"""data models for address resolution protocol family"""
|
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 ipaddress import IPv4Address, IPv6Address
|
12
|
+
|
13
|
+
from pcapkit.const.arp.hardware import Hardware
|
14
|
+
from pcapkit.const.arp.operation import Operation
|
15
|
+
from pcapkit.const.reg.ethertype import EtherType
|
16
|
+
|
17
|
+
__all__ = ['Address', 'Type', 'ARP']
|
18
|
+
|
19
|
+
|
20
|
+
@info_final
|
21
|
+
class Address(Data):
|
22
|
+
"""Data model for ARP addresses."""
|
23
|
+
|
24
|
+
#: Hardware address.
|
25
|
+
hardware: 'str'
|
26
|
+
#: Protocol address.
|
27
|
+
protocol: 'str | IPv4Address | IPv6Address'
|
28
|
+
|
29
|
+
if TYPE_CHECKING:
|
30
|
+
def __init__(self, hardware: 'str', protocol: 'str | IPv4Address | IPv6Address') -> 'None': ... # pylint: disable=line-too-long,super-init-not-called,unused-argument,multiple-statements
|
31
|
+
|
32
|
+
|
33
|
+
@info_final
|
34
|
+
class Type(Data):
|
35
|
+
"""Data model for ARP type."""
|
36
|
+
|
37
|
+
#: Hardware type.
|
38
|
+
hardware: 'Hardware'
|
39
|
+
#: Protocol type.
|
40
|
+
protocol: 'EtherType | str'
|
41
|
+
|
42
|
+
if TYPE_CHECKING:
|
43
|
+
def __init__(self, hardware: 'Hardware', protocol: 'EtherType | str') -> 'None': ... # pylint: disable=line-too-long,super-init-not-called,unused-argument,multiple-statements
|
44
|
+
|
45
|
+
|
46
|
+
@info_final
|
47
|
+
class ARP(Protocol):
|
48
|
+
"""Data model for ARP packet."""
|
49
|
+
|
50
|
+
#: Hardware type.
|
51
|
+
htype: 'Hardware'
|
52
|
+
#: Protocol type.
|
53
|
+
ptype: 'EtherType'
|
54
|
+
#: Hardware address length.
|
55
|
+
hlen: 'int'
|
56
|
+
#: Protocol address length.
|
57
|
+
plen: 'int'
|
58
|
+
#: Operation code.
|
59
|
+
oper: 'Operation'
|
60
|
+
#: Sender hardware address.
|
61
|
+
sha: 'str'
|
62
|
+
#: Sender protocol address.
|
63
|
+
spa: 'str | IPv4Address | IPv6Address'
|
64
|
+
#: Target hardware address.
|
65
|
+
tha: 'str'
|
66
|
+
#: Target protocol address.
|
67
|
+
tpa: 'str | IPv4Address | IPv6Address'
|
68
|
+
#: Header length.
|
69
|
+
len: 'int'
|
70
|
+
|
71
|
+
if TYPE_CHECKING:
|
72
|
+
def __init__(self, htype: 'Hardware', ptype: 'EtherType', hlen: 'int', plen: 'int', # pylint: disable=line-too-long,super-init-not-called,unused-argument,multiple-statements
|
73
|
+
oper: 'Operation', sha: 'str', spa: 'str | IPv4Address | IPv6Address', # pylint: disable=unused-argument
|
74
|
+
tha: 'str', tpa: 'str | IPv4Address | IPv6Address', len: 'int') -> 'None': ... # pylint: disable=unused-argument,redefined-builtin
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
"""data models for ethernet 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 pcapkit.const.reg.ethertype import EtherType
|
12
|
+
|
13
|
+
__all__ = ['Ethernet']
|
14
|
+
|
15
|
+
|
16
|
+
@info_final
|
17
|
+
class Ethernet(Protocol):
|
18
|
+
"""Data model for ethernet packet."""
|
19
|
+
|
20
|
+
#: Destination MAC address.
|
21
|
+
dst: 'str'
|
22
|
+
#: Source MAC address.
|
23
|
+
src: 'str'
|
24
|
+
#: Protocol (internet layer).
|
25
|
+
type: 'EtherType'
|
26
|
+
|
27
|
+
if TYPE_CHECKING:
|
28
|
+
def __init__(self, dst: 'str', src: 'str', type: 'EtherType') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,redefined-builtin,multiple-statements
|