📄 policy.tp
字号:
/* $XORP: xorp/etc/templates/policy.tp,v 1.24 2006/11/22 01:19:11 pavlin Exp $ */policy { targetname: txt = "policy"; policy-statement @: txt { term @: txt { from { protocol: txt; network4: ipv4net; network6: ipv6net; network4-list: txt; network6-list: txt; prefix-length4: u32range; prefix-length6: u32range; } to { network4: ipv4net; network6: ipv6net; network4-list: txt; network6-list: txt; prefix-length4: u32range; prefix-length6: u32range; } then { trace: u32; } } } network4-list @: txt { elements: txt; /* %deprecated */ network @: ipv4net { } } network6-list @: txt { elements: txt; /* %deprecated */ network @: ipv6net { } }}policy { %help: short "Configure routing policies"; %modinfo: provides policy; %modinfo: depends rib; %modinfo: path "policy/xorp_policy"; %modinfo: default_targetname "policy"; %modinfo: status_method xrl "$(policy.targetname)/common/0.1/get_status->status:u32&reason:txt"; %modinfo: shutdown_method xrl "$(policy.targetname)/common/0.1/shutdown"; %modinfo: end_commit xrl "$(policy.targetname)/policy/0.1/done_global_policy_conf"; %mandatory: $(@.targetname); targetname { %user-hidden: "XRL target name"; %help: short "XRL target name"; %set:; } policy-statement @: txt { %help: short "Routing policy"; %create: xrl "$(policy.targetname)/policy/0.1/create_policy?policy:txt=$(@)"; %delete: xrl "$(policy.targetname)/policy/0.1/delete_policy?policy:txt=$(@)"; term @: txt { %help: short "Term of the routing policy"; %create: xrl "$(policy.targetname)/policy/0.1/create_term?policy:txt=$(policy-statement.@)&order:txt=$(#)&term:txt=$(@)"; %delete: xrl "$(policy.targetname)/policy/0.1/delete_term?policy:txt=$(policy-statement.@)&term:txt=$(@)"; from { %help: short "Conditions to match the source of a route"; protocol { %help: short "Protocol from which route was learned"; %allow: $(@) "bgp" %help: "BGP routes"; %allow: $(@) "connected" %help: "Directly connected sub-network routes"; %allow: $(@) "ospf4" %help: "OSPF IPv4 routes"; %allow: $(@) "rip" %help: "RIP routes"; %allow: $(@) "ripng" %help: "RIPng routes"; %allow: $(@) "static" %help: "Static routes"; %set: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=0&order:txt=$(#)&statement:txt=protocol $(<>) $(@);"; %delete: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=0&order:txt=$(#)&statement:txt="; } network4 { %help: short "IPv4 network"; %allow-operator: ":" "==" "!=" "<" ">" "<=" ">=" "exact" "not" "shorter" "longer" "orshorter" "orlonger"; %set: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=0&order:txt=$(#)&statement:txt=network4 $(<>) $(@);"; %delete: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=0&order:txt=$(#)&statement:txt="; } network6 { %help: short "IPv6 network"; %allow-operator: ":" "==" "!=" "<" ">" "<=" ">=" "exact" "not" "shorter" "longer" "orshorter" "orlonger"; %set: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=0&order:txt=$(#)&statement:txt=network6 $(<>) $(@);"; %delete: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=0&order:txt=$(#)&statement:txt="; } network4-list { %help: short "Valid named set of IPv4 networks"; %set: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=0&order:txt=$(#)&statement:txt=network4 <= SET $(@);"; %delete: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=0&order:txt=$(#)&statement:txt="; } network6-list { %help: short "Valid named set of IPv6 networks"; %set: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=0&order:txt=$(#)&statement:txt=network6 <= SET $(@);"; %delete: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=0&order:txt=$(#)&statement:txt="; } prefix-length4 { %help: short "IPv4 prefix length range"; %allow-operator: "==" "!=" "<" "<=" ">" ">="; %set: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=0&order:txt=$(#)&statement:txt=network4 $(<>) $(@);"; %delete: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=0&order:txt=$(#)&statement:txt="; } prefix-length6 { %help: short "IPv6 prefix length range"; %allow-operator: "==" "!=" "<" "<=" ">" ">="; %set: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=0&order:txt=$(#)&statement:txt=network6 $(<>) $(@);"; %delete: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=0&order:txt=$(#)&statement:txt="; } } to { %help: short "Conditions to match the destination of a route"; network4 { %help: short "IPv4 network"; %allow-operator: ":" "==" "!=" "<" ">" "<=" ">=" "exact" "not" "shorter" "longer" "orshorter" "orlonger"; %set: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=1&order:txt=$(#)&statement:txt=network4 $(<>) $(@);"; %delete: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=1&order:txt=$(#)&statement:txt="; } network6 { %help: short "IPv6 network"; %allow-operator: ":" "==" "!=" "<" ">" "<=" ">=" "exact" "not" "shorter" "longer" "orshorter" "orlonger"; %set: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=1&order:txt=$(#)&statement:txt=network6 $(<>) $(@);"; %delete: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=1&order:txt=$(#)&statement:txt="; } network4-list { %help: short "Valid named set of IPv4 networks"; %set: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=1&order:txt=$(#)&statement:txt=network4 <= SET $(@);"; %delete: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=1&order:txt=$(#)&statement:txt="; } network6-list { %help: short "Valid named set of IPv6 networks"; %set: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=1&order:txt=$(#)&statement:txt=network6 <= SET $(@);"; %delete: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=1&order:txt=$(#)&statement:txt="; } prefix-length4 { %help: short "IPv4 prefix length range"; %allow-operator: "==" "!=" "<" "<=" ">" ">="; %set: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=1&order:txt=$(#)&statement:txt=network4 $(<>) $(@);"; %delete: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=1&order:txt=$(#)&statement:txt="; } prefix-length6 { %help: short "IPv6 prefix length range"; %allow-operator: "==" "!=" "<" "<=" ">" ">="; %set: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=1&order:txt=$(#)&statement:txt=network6 $(<>) $(@);"; %delete: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=1&order:txt=$(#)&statement:txt="; } } then { %help: short "Actions to take if conditions match"; trace { %help: short "Set the tracing"; %set: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=2&order:txt=$(#)&statement:txt=trace = $(@);"; %delete: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=2&order:txt=$(#)&statement:txt="; } accept { %help: short "Accept a route"; %create: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=2&order:txt=$(#)&statement:txt=accept;"; %delete: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=2&order:txt=$(#)&statement:txt="; } reject { %help: short "Reject a route"; %create: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=2&order:txt=$(#)&statement:txt=reject;"; %delete: xrl "$(policy.targetname)/policy/0.1/update_term_block?policy:txt=$(policy-statement.@)&term:txt=$(term.@)&block:u32=2&order:txt=$(#)&statement:txt="; } } } } network4-list @: txt { %help: short "Named set of IPv4 networks"; %delete: xrl "$(policy.targetname)/policy/0.1/delete_set?set:txt=$(@)"; %create: xrl "$(policy.targetname)/policy/0.1/create_set?set:txt=$(@)"; elements { %deprecated: "Statement 'elements' is replaced with 'network'"; %help: short "Elements in the named set of IPv4 networks"; %set: xrl "$(policy.targetname)/policy/0.1/update_set?type:txt=set_ipv4net&set:txt=$(network4-list.@)&elements:txt=$(@)"; } network @: ipv4net { %help: short "Element in the named set of IPv4 networks"; %create: xrl "$(policy.targetname)/policy/0.1/add_to_set?type:txt=set_ipv4net&set:txt=$(network4-list.@)&element:txt=$(@)"; %delete: xrl "$(policy.targetname)/policy/0.1/delete_from_set?type:txt=set_ipv4net&set:txt=$(network4-list.@)&element:txt=$(@)"; } } network6-list @: txt { %help: short "Named set of IPv6 networks"; %delete: xrl "$(policy.targetname)/policy/0.1/delete_set?set:txt=$(@)"; %create: xrl "$(policy.targetname)/policy/0.1/create_set?set:txt=$(@)"; elements { %deprecated: "Statement 'elements' is replaced with 'network'"; %help: short "Elements in the named set of IPv6 networks"; %set: xrl "$(policy.targetname)/policy/0.1/update_set?type:txt=set_ipv6net&set:txt=$(network6-list.@)&elements:txt=$(@)"; } network @: ipv6net { %help: short "Element in the named set of IPv6 networks"; %create: xrl "$(policy.targetname)/policy/0.1/add_to_set?type:txt=set_ipv6net&set:txt=$(network6-list.@)&element:txt=$(@)"; %delete: xrl "$(policy.targetname)/policy/0.1/delete_from_set?type:txt=set_ipv6net&set:txt=$(network6-list.@)&element:txt=$(@)"; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -