<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE language><language name="NFTables" section="Configuration" version="1" kateversion="5.79" extensions="*.nft;*.nftables" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT"><highlighting><list name="units"><item>bytes</item><item>kbytes</item><item>mbytes</item></list><list name="operations"><item>add</item><item>create</item><item>delete</item><item>describe</item><item>destroy</item><item>flush</item><item>get</item><item>insert</item><item>list</item><item>monitor</item><item>rename</item><item>replace</item><item>reset</item></list><list name="symbolic_variables"><item>define</item><item>redefine</item><item>undefine</item></list><list name="address_families"><item>arp</item><item>bridge</item><item>inet</item><item>ip</item><item>ip6</item><item>netdev</item></list><list name="verdict_statements"><item>accept</item><item>continue</item><item>drop</item><item>goto</item><item>jump</item><item>return</item></list><list name="statements"><item>ah</item><item>arp</item><item>chain</item><item>comp</item><item>counter</item><item>counters</item><item>ct</item><item>dccp</item><item>dnat</item><item>dst</item><item>dup</item><item>element</item><item>esp</item><item>ether</item><item>exthdr</item><item>fib</item><item>flow</item><item>flowtable</item><item>frag</item><item>fwd</item><item>geneve</item><item>gre</item><item>gretap</item><item>hbh</item><item>hooks</item><item>icmp</item><item>icmpv6</item><item>igmp</item><item>ip</item><item>ip6</item><item>ipsec</item><item>jhash</item><item>limit</item><item>log</item><item>map</item><item>masquerade</item><item>meta</item><item>mh</item><item>notrack</item><item>numgen</item><item>osf</item><item>queue</item><item>quota</item><item>quotas</item><item>redirect</item><item>reject</item><item>route</item><item>rt</item><item>rule</item><item>ruleset</item><item>sctp</item><item>set</item><item>snat</item><item>socket</item><item>srh</item><item>symhash</item><item>synproxy</item><item>table</item><item>tcp</item><item>tproxy</item><item>udp</item><item>udplite</item><item>vlan</item><item>vmap</item><item>vxlan</item><item>xt</item></list><list name="values"><item>ack</item><item>addr-unreachable</item><item>address-mask-reply</item><item>address-mask-request</item><item>admin-prohibited</item><item>all</item><item>assured</item><item>bypass</item><item>cgroupv2</item><item>close</item><item>closereq</item><item>confirmed</item><item>constant</item><item>daddr</item><item>data</item><item>dataack</item><item>destination-unreachable</item><item>destroy</item><item>dnat</item><item>dormant</item><item>dstnat</item><item>dying</item><item>dynamic</item><item>echo-reply</item><item>echo-request</item><item>egress</item><item>established</item><item>ether</item><item>exists</item><item>expectation</item><item>expectations</item><item>expected</item><item>fanout</item><item>filter</item><item>forward</item><item>frag-needed</item><item>fully-random</item><item>helper</item><item>host-prohibited</item><item>host-unreachable</item><item>iif</item><item>ind-neighbor-advert</item><item>ind-neighbor-solicit</item><item>info-reply</item><item>info-request</item><item>ingress</item><item>input</item><item>interval</item><item>invalid</item><item>ip</item><item>label</item><item>loose</item><item>mangle</item><item>mark</item><item>missing</item><item>mld-listener-done</item><item>mld-listener-query</item><item>mld-listener-reduction</item><item>mld-listener-report</item><item>mld2-listener-report</item><item>mss</item><item>name</item><item>nd-neighbor-advert</item><item>nd-neighbor-solicit</item><item>nd-redirect</item><item>nd-router-advert</item><item>nd-router-solicit</item><item>net-prohibited</item><item>net-unreachable</item><item>new</item><item>no-route</item><item>oif</item><item>oifname</item><item>original</item><item>out</item><item>output</item><item>owner</item><item>packet-too-big</item><item>parameter-problem</item><item>persist</item><item>persistent</item><item>policy-fail</item><item>port-unreachable</item><item>postrouting</item><item>prerouting</item><item>prot-unreachable</item><item>protoinfo</item><item>random</item><item>raw</item><item>redirect</item><item>reject-route</item><item>related</item><item>reply</item><item>request</item><item>reset</item><item>response</item><item>router-advertisement</item><item>router-renumbering</item><item>router-solicitation</item><item>sack-perm</item><item>saddr</item><item>secmark</item><item>security</item><item>seen-reply</item><item>seqadj</item><item>skip</item><item>skuid</item><item>snat</item><item>source-quench</item><item>srcnat</item><item>sync</item><item>syncack</item><item>tcp</item><item>time-exceeded</item><item>timeout</item><item>timeouts</item><item>timestamp</item><item>timestamp-reply</item><item>timestamp-request</item><item>transparent</item><item>ttl</item><item>untracked</item><item>version</item><item>wildcard</item><item>wscale</item></list><list name="options"><item>comment</item><item>eol</item><item>expires</item><item>group</item><item>inc</item><item>level</item><item>lsrr</item><item>maxseg</item><item>mod</item><item>more-fragments</item><item>mptcp</item><item>nop</item><item>offset</item><item>over</item><item>prefix</item><item>queue-threshold</item><item>ra</item><item>rr</item><item>sack</item><item>sack-perm</item><item>sack0</item><item>sack1</item><item>sack2</item><item>sack3</item><item>seg-left</item><item>snaplen</item><item>spnum</item><item>ssrr</item><item>timeout</item><item>timestamp</item><item>until</item><item>window</item><item>with</item></list><list name="header_expressions"><item>ackseq</item><item>checksum</item><item>chunk</item><item>code</item><item>cpi</item><item>daddr</item><item>dei</item><item>doff</item><item>dport</item><item>dscp</item><item>ecn</item><item>flags</item><item>flowlabel</item><item>frag-off</item><item>gateway</item><item>group</item><item>hdrlength</item><item>hlen</item><item>hoplimit</item><item>htype</item><item>id</item><item>length</item><item>max-delay</item><item>mrt</item><item>mtu</item><item>nexthdr</item><item>operation</item><item>packet-too-big</item><item>parameter-problem</item><item>pcp</item><item>plen</item><item>protocol</item><item>ptype</item><item>reserved</item><item>saddr</item><item>sequence</item><item>spi</item><item>sport</item><item>taddr</item><item>ttl</item><item>type</item><item>urgptr</item><item>version</item><item>vni</item><item>vtag</item><item>window</item></list><list name="specifications_and_types"><item>auto-merge</item><item>avgpkt</item><item>broute</item><item>bytes</item><item>cgroup</item><item>classid</item><item>comment</item><item>count</item><item>cpu</item><item>daddr</item><item>day</item><item>device</item><item>devices</item><item>direction</item><item>dport</item><item>elements</item><item>event</item><item>expiration</item><item>flags</item><item>gc-interval</item><item>handle</item><item>helper</item><item>hook</item><item>hour</item><item>ibrname</item><item>id</item><item>iif</item><item>iifgroup</item><item>iifkind</item><item>iifname</item><item>iiftype</item><item>in</item><item>inc</item><item>ipsec</item><item>l3proto</item><item>l4proto</item><item>label</item><item>length</item><item>mark</item><item>mtu</item><item>nexthop</item><item>nfproto</item><item>nftrace</item><item>obrname</item><item>oif</item><item>oifgroup</item><item>oifkind</item><item>oifname</item><item>oiftype</item><item>out</item><item>packets</item><item>pkttype</item><item>policy</item><item>priority</item><item>proto-dst</item><item>proto-src</item><item>protocol</item><item>random</item><item>realm</item><item>reqid</item><item>rtclassid</item><item>saddr</item><item>sdif</item><item>sdifname</item><item>seed</item><item>size</item><item>skgid</item><item>skuid</item><item>spi</item><item>state</item><item>status</item><item>time</item><item>timeout</item><item>type</item><item>typeof</item><item>used</item><item>value</item><item>zone</item></list><contexts><context name="Start" attribute="Normal"><DetectSpaces/><DetectChar char="#" attribute="Comment" context="Comment"/><DetectChar char="=" attribute="Assignment Operator"/><RangeDetect char1='"' char='"' attribute="String"/><AnyChar String="{" attribute="Block Symbol" beginRegion="block"/><AnyChar String="}" attribute="Block Symbol" endRegion="block"/><LineContinue attribute="Line Continuation"/><RegExpr String="\b(localhost|0[0-7]{1,3}(\.0[0-7]{1,3}){1,3}|0[xX][0-9a-zA-Z]{1,2}(\.0[xX][0-9a-zA-Z]{1,2}){1,3}|[0-9]{1,3}(\.[0-9]{1,3}){1,3}|[a-fA-F0-9]{2,8}(:[:a-fA-F0-9]+))\b|::[:a-fA-F0-9]+\b" attribute="IP"/><AnyChar String="[]();+-:/" attribute="Symbol"/><HlCHex attribute="Number" additionalDeliminator="-"/><Int attribute="Number" context="Unit" additionalDeliminator="-/"/><keyword String="operations" attribute="Operation"/><keyword String="address_families" attribute="Address Family"/><keyword String="statements" attribute="Statement"/><keyword String="options" attribute="Option"/><keyword String="specifications_and_types" attribute="Specification"/><keyword String="values" attribute="Value"/><keyword String="header_expressions" attribute="Header Expression"/><keyword String="symbolic_variables" attribute="Symbolic Variable"/><WordDetect String="accept" attribute="Accept"/><WordDetect String="drop" attribute="Drop"/><WordDetect String="include" attribute="Include"/><keyword String="verdict_statements" attribute="Verdict"/><RegExpr String="[&lt;>]=?|[!=]=|\b(eq|ne|lt|gt|le|ge)\b" attribute="Operator"/><RegExpr String="[a-zA-Z][a-zA-Z0-9/\\_.]*"/><RegExpr String="[$@][-_.a-zA-Z][-_.a-zA-Z0-9]*" attribute="Variable"/></context><context name="Comment" attribute="Comment" lineEndContext="#pop"><DetectSpaces/><IncludeRules context="##Comments"/><DetectIdentifier/></context><context name="Unit" attribute="Normal" fallthroughContext="#pop"><DetectSpaces/><keyword String="units" attribute="Unit" context="#pop"/><RegExpr String="(?&lt;=)[dhms]\b" attribute="Unit" context="#pop"/></context></contexts><itemDatas><itemData name="Normal" defStyleNum="dsNormal"/><itemData name="Comment" defStyleNum="dsComment"/><itemData name="Block Symbol" defStyleNum="dsNormal"/><itemData name="Symbol" defStyleNum="dsNormal"/><itemData name="Assignment Operator" defStyleNum="dsOperator"/><itemData name="Operator" defStyleNum="dsOperator"/><itemData name="Line Continuation" defStyleNum="dsOperator"/><itemData name="Number" defStyleNum="dsDecVal"/><itemData name="String" defStyleNum="dsString"/><itemData name="Variable" defStyleNum="dsVariable"/><itemData name="IP" defStyleNum="dsFloat"/><itemData name="Include" defStyleNum="dsImport"/><itemData name="Unit" defStyleNum="dsSpecialChar"/><itemData name="Operation" defStyleNum="dsKeyword"/><itemData name="Symbolic Variable" defStyleNum="dsBuiltIn"/><itemData name="Address Family" defStyleNum="dsAnnotation"/><itemData name="Verdict" defStyleNum="dsControlFlow"/><itemData name="Accept" defStyleNum="dsExtension"/><itemData name="Drop" defStyleNum="dsError"/><itemData name="Statement" defStyleNum="dsFunction"/><itemData name="Value" defStyleNum="dsConstant" bold="0"/><itemData name="Option" defStyleNum="dsPreprocessor"/><itemData name="Header Expression" defStyleNum="dsDataType"/><itemData name="Specification" defStyleNum="dsInformation"/></itemDatas></highlighting><general><keywords casesensitive="0" weakDeliminator="-/\."/><comments><comment name="singleLine" start="#" position="afterwhitespace"/></comments></general></language>