1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 | function pf(hljs) {
|
10 | const MACRO = {
|
11 | className: 'variable',
|
12 | begin: /\$[\w\d#@][\w\d_]*/
|
13 | };
|
14 | const TABLE = {
|
15 | className: 'variable',
|
16 | begin: /<(?!\/)/,
|
17 | end: />/
|
18 | };
|
19 |
|
20 | return {
|
21 | name: 'Packet Filter config',
|
22 | aliases: [ 'pf.conf' ],
|
23 | keywords: {
|
24 | $pattern: /[a-z0-9_<>-]+/,
|
25 | built_in: |
26 |
|
27 |
|
28 | 'block match pass load anchor|5 antispoof|10 set table',
|
29 | keyword:
|
30 | 'in out log quick on rdomain inet inet6 proto from port os to route ' +
|
31 | 'allow-opts divert-packet divert-reply divert-to flags group icmp-type ' +
|
32 | 'icmp6-type label once probability recieved-on rtable prio queue ' +
|
33 | 'tos tag tagged user keep fragment for os drop ' +
|
34 | 'af-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robin ' +
|
35 | 'source-hash static-port ' +
|
36 | 'dup-to reply-to route-to ' +
|
37 | 'parent bandwidth default min max qlimit ' +
|
38 | 'block-policy debug fingerprints hostid limit loginterface optimization ' +
|
39 | 'reassemble ruleset-optimization basic none profile skip state-defaults ' +
|
40 | 'state-policy timeout ' +
|
41 | 'const counters persist ' +
|
42 | 'no modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppy ' +
|
43 | 'source-track global rule max-src-nodes max-src-states max-src-conn ' +
|
44 | 'max-src-conn-rate overload flush ' +
|
45 | 'scrub|5 max-mss min-ttl no-df|10 random-id',
|
46 | literal:
|
47 | 'all any no-route self urpf-failed egress|5 unknown'
|
48 | },
|
49 | contains: [
|
50 | hljs.HASH_COMMENT_MODE,
|
51 | hljs.NUMBER_MODE,
|
52 | hljs.QUOTE_STRING_MODE,
|
53 | MACRO,
|
54 | TABLE
|
55 | ]
|
56 | };
|
57 | }
|
58 |
|
59 | export { pf as default };
|