a
i + @ s g d Z dddddddddddd d
ddd
dddddddddddddddddddddd d!d"d#d$d%*Zd&d'd(d)d*d+d,d-d.ddddd/d0d1d2d2d3d3d4d5d6d6d7d7d8d9d:d;dd? Zd@dA ZdBdC ZdDdE ZdFS )G)
ICMP_TYPESICMPV6_TYPESZcheck_icmp_typeZcheck_icmpv6_type) r T) r T)r r F)r F)r F)r r F)r F)r F)r F)r F)r F)r
F)r F)r F)r
F)r F)r F)r r T)r r F)r r T)r r F)r r F)r r F) r T)r r T)r r T)r
r T)r
r F)r
r F)r r T)r r F)r r F)r r T)r r T) r F) r F)*
echo-replypongdestination-unreachableznetwork-unreachableztos-network-unreachablezhost-unreachableztos-host-unreachablezprotocol-unreachableport-unreachablezfragmentation-neededzsource-route-failedznetwork-unknownzhost-unknownznetwork-prohibitedzhost-prohibitedzTOS-network-unreachablezTOS-host-unreachablecommunication-prohibitedzhost-precedence-violationzprecedence-cutoffz
source-quenchznetwork-redirectredirectz
host-redirectztos-host-redirectzTOS-network-redirectztos-network-redirectzTOS-host-redirectecho-requestpingrouter-advertisementrouter-solicitation
time-exceededttl-zero-during-transitttl-zero-during-reassemblyparameter-problemz
ip-header-badzrequired-option-missingztimestamp-requestztimestamp-replyzaddress-mask-requestzaddress-mask-reply)r r T)r r F)r r F)r r F)r r F)r r F)r r F)r r F)r r T)r r F)r r F)r r F) r T) r T) r T) r T) r T) r T) r T) r T) r T) r T) r T)r zno-router zbeyond-scopezaddress-unreachabler z
failed-policyzreject-routezpacket-too-bigr r r! r" z
bad-headerzunknown-header-typezunknown-optionr r r r r r zneighbour-solicitationzneigbour-solicitationzneighbour-advertisementzneigbour-advertisementr zmld-listener-queryzmld-listener-reportzmld-listener-donezmld2-listener-reportc C s | t v rdS dS NTF)r _name r1 6/usr/lib/python3.9/site-packages/firewall/core/icmp.pycheck_icmp_namen s r3 c C s | |ft v rdS dS r. )r valuesZ_type_coder1 r1 r2 check_icmp_type_codes s r7 c C s | t v rdS dS r. )r r/ r1 r1 r2 check_icmpv6_namex s r8 c C s | |ft v rdS dS r. )r r4 r5 r1 r1 r2 check_icmpv6_type_code} s r9 N)__all__r r r3 r7 r8 r9 r1 r1 r1 r2 s 2%