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,96 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# pylint: disable=line-too-long,consider-using-f-string
|
3
|
+
"""HTTP/2 Settings
|
4
|
+
=====================
|
5
|
+
|
6
|
+
.. module:: pcapkit.const.http.setting
|
7
|
+
|
8
|
+
This module contains the constant enumeration for **HTTP/2 Settings**,
|
9
|
+
which is automatically generated from :class:`pcapkit.vendor.http.setting.Setting`.
|
10
|
+
|
11
|
+
"""
|
12
|
+
|
13
|
+
from aenum import IntEnum, extend_enum
|
14
|
+
|
15
|
+
__all__ = ['Setting']
|
16
|
+
|
17
|
+
|
18
|
+
class Setting(IntEnum):
|
19
|
+
"""[Setting] HTTP/2 Settings"""
|
20
|
+
|
21
|
+
#: ``Reserved`` [:rfc:`9113`]
|
22
|
+
Reserved_0x0000 = 0x0000
|
23
|
+
|
24
|
+
#: ``HEADER_TABLE_SIZE`` [:rfc:`9113#section-6.5.2`] (Initial Value: 4096)
|
25
|
+
HEADER_TABLE_SIZE = 0x0001
|
26
|
+
|
27
|
+
#: ``ENABLE_PUSH`` [:rfc:`9113#section-6.5.2`] (Initial Value: 1)
|
28
|
+
ENABLE_PUSH = 0x0002
|
29
|
+
|
30
|
+
#: ``MAX_CONCURRENT_STREAMS`` [:rfc:`9113#section-6.5.2`] (Initial Value:
|
31
|
+
#: infinite)
|
32
|
+
MAX_CONCURRENT_STREAMS = 0x0003
|
33
|
+
|
34
|
+
#: ``INITIAL_WINDOW_SIZE`` [:rfc:`9113#section-6.5.2`] (Initial Value: 65535)
|
35
|
+
INITIAL_WINDOW_SIZE = 0x0004
|
36
|
+
|
37
|
+
#: ``MAX_FRAME_SIZE`` [:rfc:`9113#section-6.5.2`] (Initial Value: 16384)
|
38
|
+
MAX_FRAME_SIZE = 0x0005
|
39
|
+
|
40
|
+
#: ``MAX_HEADER_LIST_SIZE`` [:rfc:`9113#section-6.5.2`] (Initial Value:
|
41
|
+
#: infinite)
|
42
|
+
MAX_HEADER_LIST_SIZE = 0x0006
|
43
|
+
|
44
|
+
#: ``Unassigned``
|
45
|
+
Unassigned_0x0007 = 0x0007
|
46
|
+
|
47
|
+
#: ``SETTINGS_ENABLE_CONNECT_PROTOCOL`` [:rfc:`8441`] (Initial Value: 0)
|
48
|
+
SETTINGS_ENABLE_CONNECT_PROTOCOL = 0x0008
|
49
|
+
|
50
|
+
#: ``SETTINGS_NO_RFC7540_PRIORITIES`` [:rfc:`9218`] (Initial Value: 0)
|
51
|
+
SETTINGS_NO_RFC7540_PRIORITIES = 0x0009
|
52
|
+
|
53
|
+
#: ``TLS_RENEG_PERMITTED`` [MS-HTTP2E][Gabriel Montenegro] (Initial Value:
|
54
|
+
#: 0x00)
|
55
|
+
TLS_RENEG_PERMITTED = 0x0010
|
56
|
+
|
57
|
+
#: ``SETTINGS_ENABLE_METADATA`` [draft-beky-httpbis-metadata-02] (Initial
|
58
|
+
#: Value: 0)
|
59
|
+
SETTINGS_ENABLE_METADATA = 0x4D44
|
60
|
+
|
61
|
+
@staticmethod
|
62
|
+
def get(key: 'int | str', default: 'int' = -1) -> 'Setting':
|
63
|
+
"""Backport support for original codes.
|
64
|
+
|
65
|
+
Args:
|
66
|
+
key: Key to get enum item.
|
67
|
+
default: Default value if not found.
|
68
|
+
|
69
|
+
:meta private:
|
70
|
+
"""
|
71
|
+
if isinstance(key, int):
|
72
|
+
return Setting(key)
|
73
|
+
if key not in Setting._member_map_: # pylint: disable=no-member
|
74
|
+
return extend_enum(Setting, key, default)
|
75
|
+
return Setting[key] # type: ignore[misc]
|
76
|
+
|
77
|
+
@classmethod
|
78
|
+
def _missing_(cls, value: 'int') -> 'Setting':
|
79
|
+
"""Lookup function used when value is not found.
|
80
|
+
|
81
|
+
Args:
|
82
|
+
value: Value to get enum item.
|
83
|
+
|
84
|
+
"""
|
85
|
+
if not (isinstance(value, int) and 0x0000 <= value <= 0xFFFF):
|
86
|
+
raise ValueError('%r is not a valid %s' % (value, cls.__name__))
|
87
|
+
if 0x000A <= value <= 0x000F:
|
88
|
+
#: ``Unassigned``
|
89
|
+
return extend_enum(cls, 'Unassigned_0x%s' % hex(value)[2:].upper().zfill(4), value)
|
90
|
+
if 0x0011 <= value <= 0x4D43:
|
91
|
+
#: ``Unassigned``
|
92
|
+
return extend_enum(cls, 'Unassigned_0x%s' % hex(value)[2:].upper().zfill(4), value)
|
93
|
+
if 0x4D45 <= value <= 0xFFFF:
|
94
|
+
#: ``Unassigned``
|
95
|
+
return extend_enum(cls, 'Unassigned_0x%s' % hex(value)[2:].upper().zfill(4), value)
|
96
|
+
return super()._missing_(value)
|
@@ -0,0 +1,294 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# mypy: disable-error-code=assignment
|
3
|
+
# pylint: disable=line-too-long,consider-using-f-string
|
4
|
+
"""HTTP Status Code
|
5
|
+
======================
|
6
|
+
|
7
|
+
.. module:: pcapkit.const.http.status_code
|
8
|
+
|
9
|
+
This module contains the constant enumeration for **HTTP Status Code**,
|
10
|
+
which is automatically generated from :class:`pcapkit.vendor.http.status_code.StatusCode`.
|
11
|
+
|
12
|
+
"""
|
13
|
+
|
14
|
+
from typing import TYPE_CHECKING
|
15
|
+
|
16
|
+
from aenum import IntEnum, extend_enum
|
17
|
+
|
18
|
+
if TYPE_CHECKING:
|
19
|
+
from typing import Type
|
20
|
+
|
21
|
+
__all__ = ['StatusCode']
|
22
|
+
|
23
|
+
|
24
|
+
class StatusCode(IntEnum):
|
25
|
+
"""[StatusCode] HTTP Status Code"""
|
26
|
+
|
27
|
+
if TYPE_CHECKING:
|
28
|
+
#: Status message.
|
29
|
+
message: 'str'
|
30
|
+
|
31
|
+
def __new__(cls, value: 'int', message: 'str' = '(Unknown)') -> 'Type[StatusCode]':
|
32
|
+
obj = int.__new__(cls, value)
|
33
|
+
obj._value_ = value
|
34
|
+
|
35
|
+
obj.message = message
|
36
|
+
|
37
|
+
return obj
|
38
|
+
|
39
|
+
def __repr__(self) -> 'str':
|
40
|
+
return "<%s [%s]>" % (self.__class__.__name__, self._value_)
|
41
|
+
|
42
|
+
def __str__(self) -> 'str':
|
43
|
+
return "[%s] %s" % (self._value_, self.message)
|
44
|
+
|
45
|
+
#: Continue [:rfc:`9110#section-15.2.1`]
|
46
|
+
CODE_100 = 100, 'Continue'
|
47
|
+
|
48
|
+
#: Switching Protocols [:rfc:`9110#section-15.2.2`]
|
49
|
+
CODE_101 = 101, 'Switching Protocols'
|
50
|
+
|
51
|
+
#: Processing [:rfc:`2518`]
|
52
|
+
CODE_102 = 102, 'Processing'
|
53
|
+
|
54
|
+
#: Early Hints [:rfc:`8297`]
|
55
|
+
CODE_103 = 103, 'Early Hints'
|
56
|
+
|
57
|
+
#: OK [:rfc:`9110#section-15.3.1`]
|
58
|
+
CODE_200 = 200, 'OK'
|
59
|
+
|
60
|
+
#: Created [:rfc:`9110#section-15.3.2`]
|
61
|
+
CODE_201 = 201, 'Created'
|
62
|
+
|
63
|
+
#: Accepted [:rfc:`9110#section-15.3.3`]
|
64
|
+
CODE_202 = 202, 'Accepted'
|
65
|
+
|
66
|
+
#: Non-Authoritative Information [:rfc:`9110#section-15.3.4`]
|
67
|
+
CODE_203 = 203, 'Non-Authoritative Information'
|
68
|
+
|
69
|
+
#: No Content [:rfc:`9110#section-15.3.5`]
|
70
|
+
CODE_204 = 204, 'No Content'
|
71
|
+
|
72
|
+
#: Reset Content [:rfc:`9110#section-15.3.6`]
|
73
|
+
CODE_205 = 205, 'Reset Content'
|
74
|
+
|
75
|
+
#: Partial Content [:rfc:`9110#section-15.3.7`]
|
76
|
+
CODE_206 = 206, 'Partial Content'
|
77
|
+
|
78
|
+
#: Multi-Status [:rfc:`4918`]
|
79
|
+
CODE_207 = 207, 'Multi-Status'
|
80
|
+
|
81
|
+
#: Already Reported [:rfc:`5842`]
|
82
|
+
CODE_208 = 208, 'Already Reported'
|
83
|
+
|
84
|
+
#: IM Used [:rfc:`3229`]
|
85
|
+
CODE_226 = 226, 'IM Used'
|
86
|
+
|
87
|
+
#: Multiple Choices [:rfc:`9110#section-15.4.1`]
|
88
|
+
CODE_300 = 300, 'Multiple Choices'
|
89
|
+
|
90
|
+
#: Moved Permanently [:rfc:`9110#section-15.4.2`]
|
91
|
+
CODE_301 = 301, 'Moved Permanently'
|
92
|
+
|
93
|
+
#: Found [:rfc:`9110#section-15.4.3`]
|
94
|
+
CODE_302 = 302, 'Found'
|
95
|
+
|
96
|
+
#: See Other [:rfc:`9110#section-15.4.4`]
|
97
|
+
CODE_303 = 303, 'See Other'
|
98
|
+
|
99
|
+
#: Not Modified [:rfc:`9110#section-15.4.5`]
|
100
|
+
CODE_304 = 304, 'Not Modified'
|
101
|
+
|
102
|
+
#: Use Proxy [:rfc:`9110#section-15.4.6`]
|
103
|
+
CODE_305 = 305, 'Use Proxy'
|
104
|
+
|
105
|
+
#: (Unused) [:rfc:`9110#section-15.4.7`]
|
106
|
+
CODE_306 = 306, '(Unused)'
|
107
|
+
|
108
|
+
#: Temporary Redirect [:rfc:`9110#section-15.4.8`]
|
109
|
+
CODE_307 = 307, 'Temporary Redirect'
|
110
|
+
|
111
|
+
#: Permanent Redirect [:rfc:`9110#section-15.4.9`]
|
112
|
+
CODE_308 = 308, 'Permanent Redirect'
|
113
|
+
|
114
|
+
#: Bad Request [:rfc:`9110#section-15.5.1`]
|
115
|
+
CODE_400 = 400, 'Bad Request'
|
116
|
+
|
117
|
+
#: Unauthorized [:rfc:`9110#section-15.5.2`]
|
118
|
+
CODE_401 = 401, 'Unauthorized'
|
119
|
+
|
120
|
+
#: Payment Required [:rfc:`9110#section-15.5.3`]
|
121
|
+
CODE_402 = 402, 'Payment Required'
|
122
|
+
|
123
|
+
#: Forbidden [:rfc:`9110#section-15.5.4`]
|
124
|
+
CODE_403 = 403, 'Forbidden'
|
125
|
+
|
126
|
+
#: Not Found [:rfc:`9110#section-15.5.5`]
|
127
|
+
CODE_404 = 404, 'Not Found'
|
128
|
+
|
129
|
+
#: Method Not Allowed [:rfc:`9110#section-15.5.6`]
|
130
|
+
CODE_405 = 405, 'Method Not Allowed'
|
131
|
+
|
132
|
+
#: Not Acceptable [:rfc:`9110#section-15.5.7`]
|
133
|
+
CODE_406 = 406, 'Not Acceptable'
|
134
|
+
|
135
|
+
#: Proxy Authentication Required [:rfc:`9110#section-15.5.8`]
|
136
|
+
CODE_407 = 407, 'Proxy Authentication Required'
|
137
|
+
|
138
|
+
#: Request Timeout [:rfc:`9110#section-15.5.9`]
|
139
|
+
CODE_408 = 408, 'Request Timeout'
|
140
|
+
|
141
|
+
#: Conflict [:rfc:`9110#section-15.5.10`]
|
142
|
+
CODE_409 = 409, 'Conflict'
|
143
|
+
|
144
|
+
#: Gone [:rfc:`9110#section-15.5.11`]
|
145
|
+
CODE_410 = 410, 'Gone'
|
146
|
+
|
147
|
+
#: Length Required [:rfc:`9110#section-15.5.12`]
|
148
|
+
CODE_411 = 411, 'Length Required'
|
149
|
+
|
150
|
+
#: Precondition Failed [:rfc:`9110#section-15.5.13`]
|
151
|
+
CODE_412 = 412, 'Precondition Failed'
|
152
|
+
|
153
|
+
#: Content Too Large [:rfc:`9110#section-15.5.14`]
|
154
|
+
CODE_413 = 413, 'Content Too Large'
|
155
|
+
|
156
|
+
#: URI Too Long [:rfc:`9110#section-15.5.15`]
|
157
|
+
CODE_414 = 414, 'URI Too Long'
|
158
|
+
|
159
|
+
#: Unsupported Media Type [:rfc:`9110#section-15.5.16`]
|
160
|
+
CODE_415 = 415, 'Unsupported Media Type'
|
161
|
+
|
162
|
+
#: Range Not Satisfiable [:rfc:`9110#section-15.5.17`]
|
163
|
+
CODE_416 = 416, 'Range Not Satisfiable'
|
164
|
+
|
165
|
+
#: Expectation Failed [:rfc:`9110#section-15.5.18`]
|
166
|
+
CODE_417 = 417, 'Expectation Failed'
|
167
|
+
|
168
|
+
#: (Unused) [:rfc:`9110#section-15.5.19`]
|
169
|
+
CODE_418 = 418, '(Unused)'
|
170
|
+
|
171
|
+
#: Misdirected Request [:rfc:`9110#section-15.5.20`]
|
172
|
+
CODE_421 = 421, 'Misdirected Request'
|
173
|
+
|
174
|
+
#: Unprocessable Content [:rfc:`9110#section-15.5.21`]
|
175
|
+
CODE_422 = 422, 'Unprocessable Content'
|
176
|
+
|
177
|
+
#: Locked [:rfc:`4918`]
|
178
|
+
CODE_423 = 423, 'Locked'
|
179
|
+
|
180
|
+
#: Failed Dependency [:rfc:`4918`]
|
181
|
+
CODE_424 = 424, 'Failed Dependency'
|
182
|
+
|
183
|
+
#: Too Early [:rfc:`8470`]
|
184
|
+
CODE_425 = 425, 'Too Early'
|
185
|
+
|
186
|
+
#: Upgrade Required [:rfc:`9110#section-15.5.22`]
|
187
|
+
CODE_426 = 426, 'Upgrade Required'
|
188
|
+
|
189
|
+
#: Unassigned
|
190
|
+
CODE_427 = 427, 'Unassigned'
|
191
|
+
|
192
|
+
#: Precondition Required [:rfc:`6585`]
|
193
|
+
CODE_428 = 428, 'Precondition Required'
|
194
|
+
|
195
|
+
#: Too Many Requests [:rfc:`6585`]
|
196
|
+
CODE_429 = 429, 'Too Many Requests'
|
197
|
+
|
198
|
+
#: Unassigned
|
199
|
+
CODE_430 = 430, 'Unassigned'
|
200
|
+
|
201
|
+
#: Request Header Fields Too Large [:rfc:`6585`]
|
202
|
+
CODE_431 = 431, 'Request Header Fields Too Large'
|
203
|
+
|
204
|
+
#: Unavailable For Legal Reasons [:rfc:`7725`]
|
205
|
+
CODE_451 = 451, 'Unavailable For Legal Reasons'
|
206
|
+
|
207
|
+
#: Internal Server Error [:rfc:`9110#section-15.6.1`]
|
208
|
+
CODE_500 = 500, 'Internal Server Error'
|
209
|
+
|
210
|
+
#: Not Implemented [:rfc:`9110#section-15.6.2`]
|
211
|
+
CODE_501 = 501, 'Not Implemented'
|
212
|
+
|
213
|
+
#: Bad Gateway [:rfc:`9110#section-15.6.3`]
|
214
|
+
CODE_502 = 502, 'Bad Gateway'
|
215
|
+
|
216
|
+
#: Service Unavailable [:rfc:`9110#section-15.6.4`]
|
217
|
+
CODE_503 = 503, 'Service Unavailable'
|
218
|
+
|
219
|
+
#: Gateway Timeout [:rfc:`9110#section-15.6.5`]
|
220
|
+
CODE_504 = 504, 'Gateway Timeout'
|
221
|
+
|
222
|
+
#: HTTP Version Not Supported [:rfc:`9110#section-15.6.6`]
|
223
|
+
CODE_505 = 505, 'HTTP Version Not Supported'
|
224
|
+
|
225
|
+
#: Variant Also Negotiates [:rfc:`2295`]
|
226
|
+
CODE_506 = 506, 'Variant Also Negotiates'
|
227
|
+
|
228
|
+
#: Insufficient Storage [:rfc:`4918`]
|
229
|
+
CODE_507 = 507, 'Insufficient Storage'
|
230
|
+
|
231
|
+
#: Loop Detected [:rfc:`5842`]
|
232
|
+
CODE_508 = 508, 'Loop Detected'
|
233
|
+
|
234
|
+
#: Unassigned
|
235
|
+
CODE_509 = 509, 'Unassigned'
|
236
|
+
|
237
|
+
#: Not Extended (OBSOLETED) [:rfc:`2774`][Status change of HTTP experiments to
|
238
|
+
#: Historic]
|
239
|
+
CODE_510 = 510, 'Not Extended'
|
240
|
+
|
241
|
+
#: Network Authentication Required [:rfc:`6585`]
|
242
|
+
CODE_511 = 511, 'Network Authentication Required'
|
243
|
+
|
244
|
+
@staticmethod
|
245
|
+
def get(key: 'int | str', default: 'int' = -1) -> 'StatusCode':
|
246
|
+
"""Backport support for original codes.
|
247
|
+
|
248
|
+
Args:
|
249
|
+
key: Key to get enum item.
|
250
|
+
default: Default value if not found.
|
251
|
+
|
252
|
+
:meta private:
|
253
|
+
"""
|
254
|
+
if isinstance(key, int):
|
255
|
+
return StatusCode(key)
|
256
|
+
if key not in StatusCode._member_map_: # pylint: disable=no-member
|
257
|
+
extend_enum(StatusCode, key, default)
|
258
|
+
return StatusCode[key] # type: ignore[misc]
|
259
|
+
|
260
|
+
@classmethod
|
261
|
+
def _missing_(cls, value: 'int') -> 'StatusCode':
|
262
|
+
"""Lookup function used when value is not found.
|
263
|
+
|
264
|
+
Args:
|
265
|
+
value: Value to get enum item.
|
266
|
+
|
267
|
+
"""
|
268
|
+
if not (isinstance(value, int) and 100 <= value <= 599):
|
269
|
+
raise ValueError('%r is not a valid %s' % (value, cls.__name__))
|
270
|
+
if 104 <= value <= 199:
|
271
|
+
#: Unassigned
|
272
|
+
return extend_enum(cls, 'CODE_%d' % value, value, 'Unassigned')
|
273
|
+
if 209 <= value <= 225:
|
274
|
+
#: Unassigned
|
275
|
+
return extend_enum(cls, 'CODE_%d' % value, value, 'Unassigned')
|
276
|
+
if 227 <= value <= 299:
|
277
|
+
#: Unassigned
|
278
|
+
return extend_enum(cls, 'CODE_%d' % value, value, 'Unassigned')
|
279
|
+
if 309 <= value <= 399:
|
280
|
+
#: Unassigned
|
281
|
+
return extend_enum(cls, 'CODE_%d' % value, value, 'Unassigned')
|
282
|
+
if 419 <= value <= 420:
|
283
|
+
#: Unassigned
|
284
|
+
return extend_enum(cls, 'CODE_%d' % value, value, 'Unassigned')
|
285
|
+
if 432 <= value <= 450:
|
286
|
+
#: Unassigned
|
287
|
+
return extend_enum(cls, 'CODE_%d' % value, value, 'Unassigned')
|
288
|
+
if 452 <= value <= 499:
|
289
|
+
#: Unassigned
|
290
|
+
return extend_enum(cls, 'CODE_%d' % value, value, 'Unassigned')
|
291
|
+
if 512 <= value <= 599:
|
292
|
+
#: Unassigned
|
293
|
+
return extend_enum(cls, 'CODE_%d' % value, value, 'Unassigned')
|
294
|
+
return super()._missing_(value)
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# pylint: disable=unused-import
|
3
|
+
""":class:`~pcapkit.protocols.internet.ipv4.IPv4` Constant Enumerations
|
4
|
+
==========================================================================
|
5
|
+
|
6
|
+
This module contains all constant enumerations of
|
7
|
+
:class:`~pcapkit.protocols.internet.ipv4.IPv4` implementations. Available
|
8
|
+
enumerations include:
|
9
|
+
|
10
|
+
.. list-table::
|
11
|
+
|
12
|
+
* - :class:`IPv4_ClassificationLevel <pcapkit.const.ipv4.classification_level.ClassificationLevel>`
|
13
|
+
- Classification Level Encodings
|
14
|
+
* - :class:`IPv4_OptionClass <pcapkit.const.ipv4.option_class.OptionClass>`
|
15
|
+
- Option Classes
|
16
|
+
* - :class:`IPv4_OptionNumber <pcapkit.const.ipv4.option_number.OptionNumber>`
|
17
|
+
- IP Option Numbers [*]_
|
18
|
+
* - :class:`IPv4_ProtectionAuthority <pcapkit.const.ipv4.protection_authority.ProtectionAuthority>`
|
19
|
+
- Protection Authority Bit Assignments
|
20
|
+
* - :class:`IPv4_QSFunction <pcapkit.const.ipv4.qs_function.QSFunction>`
|
21
|
+
- QS Functions
|
22
|
+
* - :class:`IPv4_RouterAlert <pcapkit.const.ipv4.router_alert.RouterAlert>`
|
23
|
+
- IPv4 Router Alert Option Values [*]_
|
24
|
+
* - :class:`IPv4_ToSDelay <pcapkit.const.ipv4.tos_del.ToSDelay>`
|
25
|
+
- ToS (DS Field) Delay
|
26
|
+
* - :class:`IPv4_ToSECN <pcapkit.const.ipv4.tos_ecn.ToSECN>`
|
27
|
+
- ToS ECN Field
|
28
|
+
* - :class:`IPv4_ToSPrecedence <pcapkit.const.ipv4.tos_pre.TOSPrecedence>`
|
29
|
+
- ToS (DS Field) Precedence
|
30
|
+
* - :class:`IPv4_ToSReliability <pcapkit.const.ipv4.tos_rel.TOSReliability>`
|
31
|
+
- ToS (DS Field) Reliability
|
32
|
+
* - :class:`IPv4_ToSThroughput <pcapkit.const.ipv4.tos_thr.TOSThroughput>`
|
33
|
+
- ToS (DS Field) Throughput
|
34
|
+
* - :class:`IPv4_TSFlag <pcapkit.const.ipv4.ts_flag.TSFlag>`
|
35
|
+
- TS Flag
|
36
|
+
|
37
|
+
.. [*] https://www.iana.org/assignments/ip-parameters/ip-parameters.xhtml#ip-parameters-1
|
38
|
+
.. [*] https://www.iana.org/assignments/ip-parameters/ip-parameters.xhtml#ipv4-router-alert-option-values
|
39
|
+
|
40
|
+
"""
|
41
|
+
|
42
|
+
from pcapkit.const.ipv4.classification_level import ClassificationLevel as IPv4_ClassificationLevel
|
43
|
+
from pcapkit.const.ipv4.option_class import OptionClass as IPv4_OptionClass
|
44
|
+
from pcapkit.const.ipv4.option_number import OptionNumber as IPv4_OptionNumber
|
45
|
+
from pcapkit.const.ipv4.protection_authority import ProtectionAuthority as IPv4_ProtectionAuthority
|
46
|
+
from pcapkit.const.ipv4.qs_function import QSFunction as IPv4_QSFunction
|
47
|
+
from pcapkit.const.ipv4.router_alert import RouterAlert as IPv4_RouterAlert
|
48
|
+
from pcapkit.const.ipv4.tos_del import ToSDelay as IPv4_ToSDelay
|
49
|
+
from pcapkit.const.ipv4.tos_ecn import ToSECN as IPv4_ToSECN
|
50
|
+
from pcapkit.const.ipv4.tos_pre import ToSPrecedence as IPv4_ToSPrecedence
|
51
|
+
from pcapkit.const.ipv4.tos_rel import ToSReliability as IPv4_ToSReliability
|
52
|
+
from pcapkit.const.ipv4.tos_thr import ToSThroughput as IPv4_ToSThroughput
|
53
|
+
from pcapkit.const.ipv4.ts_flag import TSFlag as IPv4_TSFlag
|
54
|
+
|
55
|
+
__all__ = ['IPv4_ClassificationLevel', 'IPv4_OptionClass', 'IPv4_OptionNumber', 'IPv4_ProtectionAuthority',
|
56
|
+
'IPv4_QSFunction', 'IPv4_RouterAlert', 'IPv4_ToSDelay', 'IPv4_ToSECN', 'IPv4_ToSPrecedence',
|
57
|
+
'IPv4_ToSReliability', 'IPv4_ToSThroughput', 'IPv4_TSFlag']
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# pylint: disable=line-too-long,consider-using-f-string
|
3
|
+
"""Classification Level Encodings
|
4
|
+
====================================
|
5
|
+
|
6
|
+
.. module:: pcapkit.const.ipv4.classification_level
|
7
|
+
|
8
|
+
This module contains the constant enumeration for **Classification Level Encodings**,
|
9
|
+
which is automatically generated from :class:`pcapkit.vendor.ipv4.classification_level.ClassificationLevel`.
|
10
|
+
|
11
|
+
"""
|
12
|
+
|
13
|
+
from aenum import IntEnum, extend_enum
|
14
|
+
|
15
|
+
__all__ = ['ClassificationLevel']
|
16
|
+
|
17
|
+
|
18
|
+
class ClassificationLevel(IntEnum):
|
19
|
+
"""[ClassificationLevel] Classification Level Encodings"""
|
20
|
+
|
21
|
+
Reserved_4 = 0b00000001
|
22
|
+
|
23
|
+
Top_Secret = 0b00111101
|
24
|
+
|
25
|
+
Secret = 0b01011010
|
26
|
+
|
27
|
+
Confidential = 0b10010110
|
28
|
+
|
29
|
+
Reserved_3 = 0b01100110
|
30
|
+
|
31
|
+
Reserved_2 = 0b11001100
|
32
|
+
|
33
|
+
Unclassified = 0b10101011
|
34
|
+
|
35
|
+
Reserved_1 = 0b11110001
|
36
|
+
|
37
|
+
@staticmethod
|
38
|
+
def get(key: 'int | str', default: 'int' = -1) -> 'ClassificationLevel':
|
39
|
+
"""Backport support for original codes.
|
40
|
+
|
41
|
+
Args:
|
42
|
+
key: Key to get enum item.
|
43
|
+
default: Default value if not found.
|
44
|
+
|
45
|
+
:meta private:
|
46
|
+
"""
|
47
|
+
if isinstance(key, int):
|
48
|
+
return ClassificationLevel(key)
|
49
|
+
if key not in ClassificationLevel._member_map_: # pylint: disable=no-member
|
50
|
+
return extend_enum(ClassificationLevel, key, default)
|
51
|
+
return ClassificationLevel[key] # type: ignore[misc]
|
52
|
+
|
53
|
+
@classmethod
|
54
|
+
def _missing_(cls, value: 'int') -> 'ClassificationLevel':
|
55
|
+
"""Lookup function used when value is not found.
|
56
|
+
|
57
|
+
Args:
|
58
|
+
value: Value to get enum item.
|
59
|
+
|
60
|
+
"""
|
61
|
+
if not (isinstance(value, int) and 0b00000000 <= value <= 0b11111111):
|
62
|
+
raise ValueError('%r is not a valid %s' % (value, cls.__name__))
|
63
|
+
temp = bin(value)[2:].upper().zfill(8)
|
64
|
+
return extend_enum(cls, 'Unassigned_0b%s' % (temp[:4]+'_'+temp[4:]), value)
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# pylint: disable=line-too-long,consider-using-f-string
|
3
|
+
"""Option Classes
|
4
|
+
====================
|
5
|
+
|
6
|
+
.. module:: pcapkit.const.ipv4.option_class
|
7
|
+
|
8
|
+
This module contains the constant enumeration for **Option Classes**,
|
9
|
+
which is automatically generated from :class:`pcapkit.vendor.ipv4.option_class.OptionClass`.
|
10
|
+
|
11
|
+
"""
|
12
|
+
|
13
|
+
from aenum import IntEnum, extend_enum
|
14
|
+
|
15
|
+
__all__ = ['OptionClass']
|
16
|
+
|
17
|
+
|
18
|
+
class OptionClass(IntEnum):
|
19
|
+
"""[OptionClass] Option Classes"""
|
20
|
+
|
21
|
+
control = 0
|
22
|
+
|
23
|
+
reserved_for_future_use_1 = 1
|
24
|
+
|
25
|
+
debugging_and_measurement = 2
|
26
|
+
|
27
|
+
reserved_for_future_use_3 = 3
|
28
|
+
|
29
|
+
@staticmethod
|
30
|
+
def get(key: 'int | str', default: 'int' = -1) -> 'OptionClass':
|
31
|
+
"""Backport support for original codes.
|
32
|
+
|
33
|
+
Args:
|
34
|
+
key: Key to get enum item.
|
35
|
+
default: Default value if not found.
|
36
|
+
|
37
|
+
:meta private:
|
38
|
+
"""
|
39
|
+
if isinstance(key, int):
|
40
|
+
return OptionClass(key)
|
41
|
+
if key not in OptionClass._member_map_: # pylint: disable=no-member
|
42
|
+
return extend_enum(OptionClass, key, default)
|
43
|
+
return OptionClass[key] # type: ignore[misc]
|
44
|
+
|
45
|
+
@classmethod
|
46
|
+
def _missing_(cls, value: 'int') -> 'OptionClass':
|
47
|
+
"""Lookup function used when value is not found.
|
48
|
+
|
49
|
+
Args:
|
50
|
+
value: Value to get enum item.
|
51
|
+
|
52
|
+
"""
|
53
|
+
if not (isinstance(value, int) and 0 <= value <= 3):
|
54
|
+
raise ValueError('%r is not a valid %s' % (value, cls.__name__))
|
55
|
+
return extend_enum(cls, 'Unassigned_%d' % value, value)
|
@@ -0,0 +1,137 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# pylint: disable=line-too-long,consider-using-f-string
|
3
|
+
"""IP Option Numbers
|
4
|
+
=======================
|
5
|
+
|
6
|
+
.. module:: pcapkit.const.ipv4.option_number
|
7
|
+
|
8
|
+
This module contains the constant enumeration for **IP Option Numbers**,
|
9
|
+
which is automatically generated from :class:`pcapkit.vendor.ipv4.option_number.OptionNumber`.
|
10
|
+
|
11
|
+
"""
|
12
|
+
|
13
|
+
from aenum import IntEnum, extend_enum
|
14
|
+
|
15
|
+
__all__ = ['OptionNumber']
|
16
|
+
|
17
|
+
|
18
|
+
class OptionNumber(IntEnum):
|
19
|
+
"""[OptionNumber] IP Option Numbers"""
|
20
|
+
|
21
|
+
#: ``EOOL``, End of Options List [:rfc:`791`][Jon Postel]
|
22
|
+
EOOL = 0
|
23
|
+
|
24
|
+
#: ``NOP``, No Operation [:rfc:`791`][Jon Postel]
|
25
|
+
NOP = 1
|
26
|
+
|
27
|
+
#: ``SEC``, Security [:rfc:`1108`]
|
28
|
+
SEC = 130
|
29
|
+
|
30
|
+
#: ``LSR``, Loose Source Route [:rfc:`791`][Jon Postel]
|
31
|
+
LSR = 131
|
32
|
+
|
33
|
+
#: ``TS``, Time Stamp [:rfc:`791`][Jon Postel]
|
34
|
+
TS = 68
|
35
|
+
|
36
|
+
#: ``E-SEC``, Extended Security [:rfc:`1108`]
|
37
|
+
E_SEC = 133
|
38
|
+
|
39
|
+
#: ``CIPSO``, Commercial Security [draft-ietf-cipso-ipsecurity-01]
|
40
|
+
CIPSO = 134
|
41
|
+
|
42
|
+
#: ``RR``, Record Route [:rfc:`791`][Jon Postel]
|
43
|
+
RR = 7
|
44
|
+
|
45
|
+
#: ``SID``, Stream ID [:rfc:`791`][Jon Postel][:rfc:`6814`]
|
46
|
+
SID = 136
|
47
|
+
|
48
|
+
#: ``SSR``, Strict Source Route [:rfc:`791`][Jon Postel]
|
49
|
+
SSR = 137
|
50
|
+
|
51
|
+
#: ``ZSU``, Experimental Measurement [ZSu]
|
52
|
+
ZSU = 10
|
53
|
+
|
54
|
+
#: ``MTUP``, MTU Probe [:rfc:`1063`][:rfc:`1191`]
|
55
|
+
MTUP = 11
|
56
|
+
|
57
|
+
#: ``MTUR``, MTU Reply [:rfc:`1063`][:rfc:`1191`]
|
58
|
+
MTUR = 12
|
59
|
+
|
60
|
+
#: ``FINN``, Experimental Flow Control [Greg Finn]
|
61
|
+
FINN = 205
|
62
|
+
|
63
|
+
#: ``VISA``, Experimental Access Control [Deborah Estrin][:rfc:`6814`]
|
64
|
+
VISA = 142
|
65
|
+
|
66
|
+
#: ``ENCODE``, ??? [VerSteeg][:rfc:`6814`]
|
67
|
+
ENCODE = 15
|
68
|
+
|
69
|
+
#: ``IMITD``, IMI Traffic Descriptor [Lee]
|
70
|
+
IMITD = 144
|
71
|
+
|
72
|
+
#: ``EIP``, Extended Internet Protocol [:rfc:`1385`][:rfc:`6814`]
|
73
|
+
EIP = 145
|
74
|
+
|
75
|
+
#: ``TR``, Traceroute [:rfc:`1393`][:rfc:`6814`]
|
76
|
+
TR = 82
|
77
|
+
|
78
|
+
#: ``ADDEXT``, Address Extension [Ullmann IPv7][:rfc:`6814`]
|
79
|
+
ADDEXT = 147
|
80
|
+
|
81
|
+
#: ``RTRALT``, Router Alert [:rfc:`2113`]
|
82
|
+
RTRALT = 148
|
83
|
+
|
84
|
+
#: ``SDB``, Selective Directed Broadcast [Charles Bud Graff][:rfc:`6814`]
|
85
|
+
SDB = 149
|
86
|
+
|
87
|
+
#: Unassigned (Released 18 October 2005)
|
88
|
+
Unassigned_150 = 150
|
89
|
+
|
90
|
+
#: ``DPS``, Dynamic Packet State [Andy Malis][:rfc:`6814`]
|
91
|
+
DPS = 151
|
92
|
+
|
93
|
+
#: ``UMP``, Upstream Multicast Pkt. [Dino Farinacci][:rfc:`6814`]
|
94
|
+
UMP = 152
|
95
|
+
|
96
|
+
#: ``QS``, Quick-Start [:rfc:`4782`]
|
97
|
+
QS = 25
|
98
|
+
|
99
|
+
#: ``EXP``, RFC3692-style Experiment [:rfc:`4727`]
|
100
|
+
EXP_30 = 30
|
101
|
+
|
102
|
+
#: ``EXP``, RFC3692-style Experiment [:rfc:`4727`]
|
103
|
+
EXP_94 = 94
|
104
|
+
|
105
|
+
#: ``EXP``, RFC3692-style Experiment [:rfc:`4727`]
|
106
|
+
EXP_158 = 158
|
107
|
+
|
108
|
+
#: ``EXP``, RFC3692-style Experiment [:rfc:`4727`]
|
109
|
+
EXP_222 = 222
|
110
|
+
|
111
|
+
@staticmethod
|
112
|
+
def get(key: 'int | str', default: 'int' = -1) -> 'OptionNumber':
|
113
|
+
"""Backport support for original codes.
|
114
|
+
|
115
|
+
Args:
|
116
|
+
key: Key to get enum item.
|
117
|
+
default: Default value if not found.
|
118
|
+
|
119
|
+
:meta private:
|
120
|
+
"""
|
121
|
+
if isinstance(key, int):
|
122
|
+
return OptionNumber(key)
|
123
|
+
if key not in OptionNumber._member_map_: # pylint: disable=no-member
|
124
|
+
return extend_enum(OptionNumber, key, default)
|
125
|
+
return OptionNumber[key] # type: ignore[misc]
|
126
|
+
|
127
|
+
@classmethod
|
128
|
+
def _missing_(cls, value: 'int') -> 'OptionNumber':
|
129
|
+
"""Lookup function used when value is not found.
|
130
|
+
|
131
|
+
Args:
|
132
|
+
value: Value to get enum item.
|
133
|
+
|
134
|
+
"""
|
135
|
+
if not (isinstance(value, int) and 0 <= value <= 255):
|
136
|
+
raise ValueError('%r is not a valid %s' % (value, cls.__name__))
|
137
|
+
return extend_enum(cls, 'Unassigned_%d' % value, value)
|