diff options
Diffstat (limited to 'docs/sources')
-rw-r--r-- | docs/sources/policy-component.png | bin | 0 -> 91354 bytes | |||
-rw-r--r-- | docs/sources/policy-rs.png | bin | 67455 -> 0 bytes | |||
-rw-r--r-- | docs/sources/policy-rs.svg | 1508 | ||||
-rw-r--r-- | docs/sources/policy.md | 100 | ||||
-rw-r--r-- | docs/sources/policy.png | bin | 0 -> 52808 bytes | |||
-rw-r--r-- | docs/sources/policy.svg | 117 | ||||
-rw-r--r-- | docs/sources/policy_component.svg | 195 | ||||
-rw-r--r-- | docs/sources/rs-policy.png | bin | 0 -> 70746 bytes | |||
-rw-r--r-- | docs/sources/rs-policy.svg | 246 |
9 files changed, 634 insertions, 1532 deletions
diff --git a/docs/sources/policy-component.png b/docs/sources/policy-component.png Binary files differnew file mode 100644 index 00000000..f8c21470 --- /dev/null +++ b/docs/sources/policy-component.png diff --git a/docs/sources/policy-rs.png b/docs/sources/policy-rs.png Binary files differdeleted file mode 100644 index 8b98c794..00000000 --- a/docs/sources/policy-rs.png +++ /dev/null diff --git a/docs/sources/policy-rs.svg b/docs/sources/policy-rs.svg deleted file mode 100644 index 93ea02fe..00000000 --- a/docs/sources/policy-rs.svg +++ /dev/null @@ -1,1508 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="420mm" - height="297mm" - viewBox="0 0 1488.189 1052.3622" - id="svg2" - version="1.1" - inkscape:version="0.91 r13725" - sodipodi:docname="policy-rs.svg"> - <defs - id="defs4"> - <marker - inkscape:stockid="Arrow2Lend" - orient="auto" - refY="0" - refX="0" - id="marker16085" - style="overflow:visible" - inkscape:isstock="true"> - <path - id="path16087" - style="fill:#029fdd;fill-opacity:1;fill-rule:evenodd;stroke:#029fdd;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - inkscape:stockid="Arrow2Lend" - orient="auto" - refY="0" - refX="0" - id="marker15799" - style="overflow:visible" - inkscape:isstock="true"> - <path - id="path15801" - style="fill:#029fdd;fill-opacity:1;fill-rule:evenodd;stroke:#029fdd;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker15455" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#029fd0;fill-opacity:0;fill-rule:evenodd;stroke:#029fd0;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:0" - id="path15457" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker14667" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:#009800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path14669" /> - </marker> - <marker - inkscape:stockid="Arrow2Lend" - orient="auto" - refY="0" - refX="0" - id="marker14327" - style="overflow:visible" - inkscape:isstock="true"> - <path - id="path14329" - style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker14215" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path14217" /> - </marker> - <marker - inkscape:stockid="Arrow2Lend" - orient="auto" - refY="0" - refX="0" - id="marker13779" - style="overflow:visible" - inkscape:isstock="true" - inkscape:collect="always"> - <path - id="path13781" - style="fill:#029fdd;fill-opacity:0;fill-rule:evenodd;stroke:#029fdd;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:0" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker13027" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#009800;fill-opacity:1;fill-rule:evenodd;stroke:#009800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path13029" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker12771" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:#009800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path12773" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker12521" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:#009800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path12523" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker12511" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:#009800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path12513" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker12267" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:#009800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path12269" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker12127" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:#009800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path12129" /> - </marker> - <marker - inkscape:stockid="Arrow2Lend" - orient="auto" - refY="0" - refX="0" - id="marker11871" - style="overflow:visible" - inkscape:isstock="true" - inkscape:collect="always"> - <path - id="path11873" - style="fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:#009800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker11445" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend" - inkscape:collect="always"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#009800;fill-opacity:1;fill-rule:evenodd;stroke:#009800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path11447" /> - </marker> - <marker - inkscape:stockid="Arrow2Lend" - orient="auto" - refY="0" - refX="0" - id="marker10749" - style="overflow:visible" - inkscape:isstock="true"> - <path - id="path10751" - style="fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:#009800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - inkscape:stockid="Arrow2Lend" - orient="auto" - refY="0" - refX="0" - id="marker10541" - style="overflow:visible" - inkscape:isstock="true"> - <path - id="path10543" - style="fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:#009800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - inkscape:stockid="Arrow2Lend" - orient="auto" - refY="0" - refX="0" - id="marker10339" - style="overflow:visible" - inkscape:isstock="true"> - <path - id="path10341" - style="fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:#009800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker9887" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend" - inkscape:collect="always"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#029fdd;fill-opacity:1;fill-rule:evenodd;stroke:#029fdd;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path9889" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker9703" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#029fdd;fill-opacity:1;fill-rule:evenodd;stroke:#029fdd;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path9705" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker9525" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#029fdd;fill-opacity:1;fill-rule:evenodd;stroke:#029fdd;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path9527" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker9353" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#029fdd;fill-opacity:1;fill-rule:evenodd;stroke:#029fdd;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path9355" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker9187" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#029fdd;fill-opacity:1;fill-rule:evenodd;stroke:#029fdd;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path9189" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker9027" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#029fdd;fill-opacity:1;fill-rule:evenodd;stroke:#029fdd;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path9029" /> - </marker> - <marker - inkscape:stockid="Arrow2Lend" - orient="auto" - refY="0" - refX="0" - id="marker8386" - style="overflow:visible" - inkscape:isstock="true" - inkscape:collect="always"> - <path - id="path8388" - style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker7902" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend" - inkscape:collect="always"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path7904" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker7778" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path7780" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker7660" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path7662" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker7548" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path7550" /> - </marker> - <marker - inkscape:stockid="Arrow2Lend" - orient="auto" - refY="0" - refX="0" - id="Arrow2Lend" - style="overflow:visible" - inkscape:isstock="true" - inkscape:collect="always"> - <path - id="path4266" - style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker5537" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path5539" - inkscape:connector-curvature="0" /> - </marker> - <marker - inkscape:stockid="Arrow2Lend" - orient="auto" - refY="0" - refX="0" - id="Arrow2Lend-0" - style="overflow:visible" - inkscape:isstock="true"> - <path - inkscape:connector-curvature="0" - id="path4266-0" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> - </marker> - <marker - inkscape:stockid="Arrow2Lend" - orient="auto" - refY="0" - refX="0" - id="Arrow2Lend-7" - style="overflow:visible" - inkscape:isstock="true"> - <path - inkscape:connector-curvature="0" - id="path4266-3" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker5238-9" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path5240-5" /> - </marker> - <marker - inkscape:stockid="Arrow2Lend" - orient="auto" - refY="0" - refX="0" - id="marker5353-0" - style="overflow:visible" - inkscape:isstock="true"> - <path - inkscape:connector-curvature="0" - id="path5355-9" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker5537-2" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path5539-4" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker5537-2-5" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path5539-4-6" /> - </marker> - <marker - inkscape:stockid="Arrow2Lend" - orient="auto" - refY="0" - refX="0" - id="Arrow2Lend-4" - style="overflow:visible" - inkscape:isstock="true"> - <path - inkscape:connector-curvature="0" - id="path4266-6" - style="fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:#009000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> - </marker> - <marker - inkscape:stockid="Arrow2Lend" - orient="auto" - refY="0" - refX="0" - id="Arrow2Lend-4-8" - style="overflow:visible" - inkscape:isstock="true"> - <path - inkscape:connector-curvature="0" - id="path4266-6-3" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> - </marker> - <marker - inkscape:stockid="Arrow2Lend" - orient="auto" - refY="0" - refX="0" - id="Arrow2Lend-9" - style="overflow:visible" - inkscape:isstock="true"> - <path - id="path4266-8" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker5537-2-5-1" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path5539-4-6-8" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker5537-2-51" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path5539-4-5" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker5537-9" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path5539-7" - inkscape:connector-curvature="0" /> - </marker> - <marker - inkscape:stockid="Arrow2Lend" - orient="auto" - refY="0" - refX="0" - id="marker8386-0" - style="overflow:visible" - inkscape:isstock="true"> - <path - id="path8388-8" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker7778-0" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path7780-4" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker7548-4" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path7550-3" /> - </marker> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker7660-9" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path7662-7" /> - </marker> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.08" - inkscape:cx="591.79831" - inkscape:cy="520" - inkscape:document-units="px" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:window-width="2560" - inkscape:window-height="1378" - inkscape:window-x="-8" - inkscape:window-y="-8" - inkscape:window-maximized="1"> - <inkscape:grid - type="xygrid" - id="grid3336" /> - </sodipodi:namedview> - <metadata - id="metadata7"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="レイヤー 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(0,-3.464567e-6)"> - <rect - style="fill:#b3b3b3;fill-rule:evenodd;stroke:#000000;stroke-width:1.18344116px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect3338" - width="110.00175" - height="50.92767" - x="251.16579" - y="322.60205" - ry="12.731926" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="265.40741" - y="352.69553" - id="text3340" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - id="tspan3342" - x="265.40741" - y="352.69553">A's Adj-in</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="114.22222" - y="338.76959" - id="text3391" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - id="tspan3393" - x="114.22222" - y="338.76959">From</tspan><tspan - sodipodi:role="line" - x="114.22222" - y="360.64459" - id="tspan3395">RS-Client A</tspan></text> - <rect - style="fill:#ff6600;fill-rule:evenodd;stroke:#000000;stroke-width:1.10790694px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect3338-1" - width="99.892097" - height="49.151352" - x="381.31317" - y="322.93466" - ry="12.287847" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="403.25925" - y="342.88071" - id="text3340-7" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - id="tspan3342-9" - x="403.25925" - y="342.88071">A's In</tspan><tspan - sodipodi:role="line" - x="403.25925" - y="364.75571" - id="tspan4922">Policy</tspan></text> - <path - style="fill:#00ff00;fill-rule:evenodd;stroke:#009800;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker11871)" - d="m 360.22222,343.21405 c 20,0 20,0 20,0" - id="path5230" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <rect - style="fill:#0000ff;fill-rule:evenodd;stroke:#000000;stroke-width:1.19525659px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect3338-1-7" - width="116.47141" - height="49.064003" - x="684.28278" - y="321.90424" - ry="12.266009" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="693.22223" - y="350.13995" - id="text3340-7-7" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - x="693.22223" - y="350.13995" - id="tspan4922-4">A's Loc-Rib</tspan></text> - <rect - style="fill:#ff6600;fill-rule:evenodd;stroke:#000000;stroke-width:1.10790694px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect3338-1-4" - width="99.892097" - height="49.151352" - x="561.64655" - y="321.93277" - ry="12.287847" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="567.59259" - y="341.87881" - id="text3340-7-3" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - id="tspan3342-9-7" - x="567.59259" - y="341.87881">A's Import</tspan><tspan - sodipodi:role="line" - x="567.59259" - y="363.75381" - id="tspan4922-6">Policy</tspan></text> - <path - style="fill:#00ff00;fill-rule:evenodd;stroke:#009800;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker12771)" - d="m 662.96297,343.13807 c 20,0 20,0 20,0" - id="path5230-3-3" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <rect - style="fill:#ff6600;fill-rule:evenodd;stroke:#000000;stroke-width:1.10790694px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect3338-1-4-7" - width="99.892097" - height="49.151352" - x="823.68359" - y="323.00684" - ry="12.287847" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="829.62964" - y="342.95288" - id="text3340-7-3-4" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - id="tspan3342-9-7-6" - x="829.62964" - y="342.95288">A's Export</tspan><tspan - sodipodi:role="line" - x="829.62964" - y="364.82788" - id="tspan4922-6-1">Policy</tspan></text> - <path - style="fill:#00ff00;fill-rule:evenodd;stroke:#009800;stroke-width:1.08208156px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker12521)" - d="m 799.25927,343.13807 c 23.41801,0 23.41801,0 23.41801,0" - id="path5230-3-3-6" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <rect - style="fill:#b3b3b3;fill-rule:evenodd;stroke:#000000;stroke-width:1.16865361px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect3338-8" - width="107.23875" - height="50.942455" - x="947.15839" - y="321.5206" - ry="12.735622" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="951.22223" - y="349.62146" - id="text3340-2" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - id="tspan3342-8" - x="951.22223" - y="349.62146">A's Adj-out</tspan></text> - <path - style="fill:#00ff00;fill-rule:evenodd;stroke:#009800;stroke-width:1.08208156px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker12511)" - d="m 922.40742,343.28622 c 23.41801,0 23.41801,0 23.41801,0" - id="path5230-3-3-6-5" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - style="fill:#00ff00;fill-rule:evenodd;stroke:#009800;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker14667)" - d="m 220.22222,343.21405 30,0" - id="path6594" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - style="fill:#00ff00;fill-rule:evenodd;stroke:#009800;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker12267)" - d="m 1053.5185,341.91775 30,0" - id="path6594-4" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="1092.1482" - y="340.43625" - id="text3391-0" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - id="tspan3393-8" - x="1092.1482" - y="340.43625">To</tspan><tspan - sodipodi:role="line" - x="1092.1482" - y="362.31125" - id="tspan3395-1">RS-Client A</tspan></text> - <rect - style="fill:#b3b3b3;fill-rule:evenodd;stroke:#000000;stroke-width:1.18344116px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect3338-6" - width="110.00175" - height="50.92767" - x="250.82716" - y="402.888" - ry="12.731926" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="265.06879" - y="432.98148" - id="text3340-9" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - id="tspan3342-3" - x="265.06879" - y="432.98148">B's Adj-in</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="113.88361" - y="419.05554" - id="text3391-05" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - id="tspan3393-5" - x="113.88361" - y="419.05554">From</tspan><tspan - sodipodi:role="line" - x="113.88361" - y="440.93054" - id="tspan3395-22">RS-Client B</tspan></text> - <rect - style="fill:#ff6600;fill-rule:evenodd;stroke:#000000;stroke-width:1.10790694px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect3338-1-2" - width="99.892097" - height="49.151352" - x="380.97458" - y="403.22061" - ry="12.287847" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="402.92065" - y="423.16666" - id="text3340-7-5" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - id="tspan3342-9-4" - x="402.92065" - y="423.16666">B's In</tspan><tspan - sodipodi:role="line" - x="402.92065" - y="445.04166" - id="tspan4922-3">Policy</tspan></text> - <path - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker7902)" - d="m 359.88361,423.5 c 20,0 20,0 20,0" - id="path5230-5" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <rect - style="fill:#0000ff;fill-rule:evenodd;stroke:#000000;stroke-width:1.19525659px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect3338-1-7-0" - width="116.47141" - height="49.064003" - x="683.94415" - y="402.19019" - ry="12.266009" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="692.88361" - y="430.4259" - id="text3340-7-7-8" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - x="692.88361" - y="430.4259" - id="tspan4922-4-4">B's Loc-Rib</tspan></text> - <rect - style="fill:#ff6600;fill-rule:evenodd;stroke:#000000;stroke-width:1.10790694px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect3338-1-4-5" - width="99.892097" - height="49.151352" - x="561.30792" - y="402.21872" - ry="12.287847" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="567.25403" - y="422.16476" - id="text3340-7-3-6" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - id="tspan3342-9-7-4" - x="567.25403" - y="422.16476">B's Import</tspan><tspan - sodipodi:role="line" - x="567.25403" - y="444.03976" - id="tspan4922-6-9">Policy</tspan></text> - <path - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker7660)" - d="m 662.62436,423.42402 c 20,0 20,0 20,0" - id="path5230-3-3-0" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <rect - style="fill:#ff6600;fill-rule:evenodd;stroke:#000000;stroke-width:1.10790694px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect3338-1-4-7-6" - width="99.892097" - height="49.151352" - x="823.34497" - y="403.29279" - ry="12.287847" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="829.29102" - y="423.23883" - id="text3340-7-3-4-1" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - id="tspan3342-9-7-6-8" - x="829.29102" - y="423.23883">B's Export</tspan><tspan - sodipodi:role="line" - x="829.29102" - y="445.11383" - id="tspan4922-6-1-7">Policy</tspan></text> - <path - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.08208156px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker7548)" - d="m 798.92066,423.42402 c 23.41801,0 23.41801,0 23.41801,0" - id="path5230-3-3-6-6" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <rect - style="fill:#b3b3b3;fill-rule:evenodd;stroke:#000000;stroke-width:1.16865361px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect3338-8-1" - width="107.23875" - height="50.942455" - x="946.81976" - y="401.80655" - ry="12.735622" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="950.88361" - y="429.90741" - id="text3340-2-2" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - id="tspan3342-8-6" - x="950.88361" - y="429.90741">B's Adj-out</tspan></text> - <path - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.08208156px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" - d="m 922.06881,423.57217 c 23.41801,0 23.41801,0 23.41801,0" - id="path5230-3-3-6-5-8" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker7778)" - d="m 219.88361,423.5 30,0" - id="path6594-3" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker8386)" - d="m 1053.1799,422.2037 30,0" - id="path6594-4-7" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="1091.8096" - y="420.7222" - id="text3391-0-4" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - id="tspan3393-8-1" - x="1091.8096" - y="420.7222">To</tspan><tspan - sodipodi:role="line" - x="1091.8096" - y="442.5972" - id="tspan3395-1-9">RS-Client B</tspan></text> - <rect - style="fill:#b3b3b3;fill-rule:evenodd;stroke:#000000;stroke-width:1.18344116px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect3338-6-4" - width="110.00175" - height="50.92767" - x="250.08643" - y="482.70282" - ry="12.731926" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="264.32806" - y="512.79626" - id="text3340-9-8" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - id="tspan3342-3-1" - x="264.32806" - y="512.79626">C's Adj-in</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="113.14288" - y="498.87036" - id="text3391-05-1" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - id="tspan3393-5-0" - x="113.14288" - y="498.87036">From</tspan><tspan - sodipodi:role="line" - x="113.14288" - y="520.74536" - id="tspan3395-22-7">RS-Client C</tspan></text> - <rect - style="fill:#ff6600;fill-rule:evenodd;stroke:#000000;stroke-width:1.10790694px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect3338-1-2-3" - width="99.892097" - height="49.151352" - x="380.23383" - y="483.03543" - ry="12.287847" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="402.1799" - y="502.98148" - id="text3340-7-5-5" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - id="tspan3342-9-4-8" - x="402.1799" - y="502.98148">C's In</tspan><tspan - sodipodi:role="line" - x="402.1799" - y="524.85645" - id="tspan4922-3-2">Policy</tspan></text> - <path - style="fill:none;fill-rule:evenodd;stroke:#029fdd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker9525)" - d="m 359.14287,503.31481 c 20,0 20,0 20,0" - id="path5230-5-0" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <rect - style="fill:#0000ff;fill-rule:evenodd;stroke:#000000;stroke-width:1.19525659px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect3338-1-7-0-1" - width="116.47141" - height="49.064003" - x="683.20343" - y="482.005" - ry="12.266009" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="692.14288" - y="510.24072" - id="text3340-7-7-8-5" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - x="692.14288" - y="510.24072" - id="tspan4922-4-4-7">C's Loc-Rib</tspan></text> - <rect - style="fill:#ff6600;fill-rule:evenodd;stroke:#000000;stroke-width:1.10790694px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect3338-1-4-5-3" - width="99.892097" - height="49.151352" - x="560.5672" - y="482.03354" - ry="12.287847" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="566.51331" - y="501.97958" - id="text3340-7-3-6-0" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - id="tspan3342-9-7-4-5" - x="566.51331" - y="501.97958">C's Import</tspan><tspan - sodipodi:role="line" - x="566.51331" - y="523.85461" - id="tspan4922-6-9-5">Policy</tspan></text> - <path - style="fill:none;fill-rule:evenodd;stroke:#029fdd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker9353)" - d="m 661.88362,503.23883 c 20,0 20,0 20,0" - id="path5230-3-3-0-9" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <rect - style="fill:#ff6600;fill-rule:evenodd;stroke:#000000;stroke-width:1.10790694px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect3338-1-4-7-6-6" - width="99.892097" - height="49.151352" - x="822.60425" - y="483.1076" - ry="12.287847" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="828.55029" - y="503.05365" - id="text3340-7-3-4-1-1" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - id="tspan3342-9-7-6-8-5" - x="828.55029" - y="503.05365">C's Export</tspan><tspan - sodipodi:role="line" - x="828.55029" - y="524.92865" - id="tspan4922-6-1-7-2">Policy</tspan></text> - <path - style="fill:none;fill-rule:evenodd;stroke:#029fdd;stroke-width:1.08208156px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker9187)" - d="m 798.17992,503.23883 c 23.41801,0 23.41801,0 23.41801,0" - id="path5230-3-3-6-6-4" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <rect - style="fill:#b3b3b3;fill-rule:evenodd;stroke:#000000;stroke-width:1.16865361px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="rect3338-8-1-4" - width="107.23875" - height="50.942455" - x="946.07904" - y="481.62137" - ry="12.735622" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="950.14288" - y="509.72223" - id="text3340-2-2-6" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - id="tspan3342-8-6-1" - x="950.14288" - y="509.72223">C's Adj-out</tspan></text> - <path - style="fill:none;fill-rule:evenodd;stroke:#029fdd;stroke-width:1.08208156px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker9027)" - d="m 921.32807,503.38698 c 23.41801,0 23.41801,0 23.41801,0" - id="path5230-3-3-6-5-8-2" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#029fdd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker9703)" - d="m 219.14287,503.31481 30,0" - id="path6594-3-9" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#029fdd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker9887)" - d="m 1052.4392,502.01851 30,0" - id="path6594-4-7-1" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="1091.0688" - y="500.53702" - id="text3391-0-4-1" - sodipodi:linespacing="125%" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"><tspan - sodipodi:role="line" - id="tspan3393-8-1-4" - x="1091.0688" - y="500.53702">To</tspan><tspan - sodipodi:role="line" - x="1091.0688" - y="522.41199" - id="tspan3395-1-9-1">RS-Client C</tspan></text> - <path - style="fill:none;fill-rule:evenodd;stroke:#009800;stroke-width:0.99998856px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker11445)" - d="m 479.99993,332.36052 60.00006,0 0,159.9962 20.00002,0" - id="path11199" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#009800;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker13027)" - d="m 540,412.36218 c 20,0 20,0 20,0" - id="path11863" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker14327)" - d="m 480,422.36218 50,0 0,-80 30,0" - id="path13757" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker14215)" - d="m 530,422.36218 0,80 30,0" - id="path13759" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#029fdd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0;marker-end:url(#marker15455)" - d="m 480,502.36218 40,0 0,-140 40,0" - id="path15439" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#029fdd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0;marker-end:url(#marker13779)" - d="m 520,432.36218 40,0" - id="path15441" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#029fdd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker16085)" - d="m 480,512.36218 40,0 0,-150 40,0" - id="path15789" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#029fdd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker15799)" - d="m 520,432.36218 40,0" - id="path15791" - inkscape:connector-curvature="0" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - </g> -</svg> diff --git a/docs/sources/policy.md b/docs/sources/policy.md index ed131d76..ccd324b9 100644 --- a/docs/sources/policy.md +++ b/docs/sources/policy.md @@ -8,27 +8,78 @@ We explain the overview firstly, then the details, ## Prerequisites -Assumed that you finished [Getting Started](https://github.com/osrg/gobgp/blob/master/docs/sources/getting-started.md). Also [Route Server](https://github.com/osrg/gobgp/blob/master/docs/sources/route-server.md) is plus because we use Route Server setup for an example configuration. +Assumed that you finished [Getting Started](https://github.com/osrg/gobgp/blob/master/docs/sources/getting-started.md). -## Overview +## Contents +- [Overview](#overview) +- [Policy Model](#model) +- [Route Server Policy Model](#rs-model) +- [Policy Structure](#policy) +- [Policy Configuration](#configuration) -### How policies works with RIBs -There are three categories for policies: **Import**, **Export** and **In** policies. +## <a name="overview"> Overview + +Policy is a way to control how BGP routes inserted to RIB or advertised to +peers. Policy has two parts, **Condition** and **Action**. +When a policy is configured, **Action** is applied to routes which meet **Condition** +before routes proceed to next step. + +GoBGP supports **Condition** like `prefix`, `neighbor`(source/destination of the route), +`aspath` etc.., and **Action** like `accept`, `reject`, `MED/aspath/community manipulation` +etc... + +You can configure policy by configuration file, CLI or gRPC API. + +## <a name="model"> Policy Model + +The following figure shows how policy works in normal BGP configuration. + +<p align="center"> + <img src="./policy.png" alt="policy model"/> +</p> + +There are **Import** and **Export** policy. **Import** policy is invoked +before best path calculation and pushing routes to RIB. +**Export** policy is invoked after that. + +You can check each policy by the following commands. + +```shell +$ gobgp global policy import +$ gobgp global policy export +``` + +## <a name="rs-model"> Route Server Policy Model + +The following figure shows how policy works in [route server BGP configuration](https://github.com/osrg/gobgp/blob/master/docs/sources/route-server.md). + +<p align="center"> + <img src="./rs-policy.png" alt="Announcement processing model implemented by the route server"/> +</p> + +In route server mode, adding to **Import** and **Export**, we have **In** policy. **Import** and **Export** policies are defined with respect to the local routing table. The **Import** policy defines what routes will be imported into its local RIBs. The **Export** policy defines what routes will be exported from its local RIBs. **In** polices are -defined with respect to a peer in only Route Server setup. The **In** -policy defines what routes will go to other peers' local routing tables. +defined with respect to a peer. The **In** policy defines what routes will go +to other peers' local routing tables. -The following figure shows how **Import**, **Export**, and **In** -policies work with RIBs in Route Server setup. +You can check each policy by the following commands. -![Announcement processing model implemented by the Route Server](./policy-rs.png) +```shell +$ gobgp neighbor <neighbor-addr> policy in +$ gobgp neighbor <neighbor-addr> policy import +$ gobgp neighbor <neighbor-addr> policy export +``` -### What's a policy? +## <a name="policy"> Policy Stracture + +<p align="center"> + <img src="./policy-component.png" alt="policy component"/> +</p> A policy consists of statements. Each statement has condition(s) and action(s). @@ -40,6 +91,7 @@ Conditions are categorized into attributes below: - aspath length - community - extended community +- rpki validation result Actions are categorized into attributes below: @@ -48,7 +100,7 @@ Actions are categorized into attributes below: - add/subtract or replace MED value - prepend AS number in the AS_PATH attribute -All the condition(s) in the statement are true, the action(s) in the statement are executed. +If All condition in the statement are true, the action(s) in the statement are executed. A condition can have multiple values. For example, you can define a prefix condition that has 10.20.0.0/16, 10.30.3.0/24, and 10.30.4.0/24. You can specify @@ -58,11 +110,19 @@ false. In this case, you can specify either: - true if a route matches any of 10.20.0.0/16, 10.30.3.0/24, and 10.30.4.0/24. - true if a route matches none of 10.20.0.0/16, 10.30.3.0/24, and 10.30.4.0/24. -The details will be explained in the following sections. If you -quickly check out what policy configuration looks like, skip the next -sections to go to the last section. +You can check policy configuration by the following commands. + +```shell +$ gobgp policy +$ gobgp policy statement +$ gobgp policy prefix +$ gobgp policy neighbor +$ gobgp policy as-path +$ gobgp policy community +$ gobgp policy ext-community +``` -## The details of steps to define policies +## <a name="configuration"> Policy Configuration GoBGP's configuration file has two parts named **DefinedSets** and **PolicyDefinitions** as its policy configuration. **DefinedSets** part defines conditions. **PolicyDefinitions** defines policies based on actions and these conditions. @@ -701,16 +761,8 @@ The ApplyPolicy has 6 elements. | DefaultInPolicy | action when the route doesn't match any policy:<br> "accept-route" or "reject-route". default is "accept-route" | "reject-route" | -## Simple configuration example - -A policy consists of a match and an action. A match defines if an -action will be applied to a route. For now, GoBGP uses only the source -of a peer and a prefix as match conditions. Only dropping and -accepting are supported as an action. -This example the configuration in [Route -Server](https://github.com/osrg/gobgp/blob/master/docs/sources/route-server.md) -with one more peer (IP:10.0.255.3, AS:65001). +## Policy Configuration Example Neighbor 10.0.255.1 advertises 10.33.0.0/16 and 10.3.0.0/16 routes. We define an import policy for neighbor 10.0.255.2 that drops diff --git a/docs/sources/policy.png b/docs/sources/policy.png Binary files differnew file mode 100644 index 00000000..ac4aee07 --- /dev/null +++ b/docs/sources/policy.png diff --git a/docs/sources/policy.svg b/docs/sources/policy.svg new file mode 100644 index 00000000..850c3702 --- /dev/null +++ b/docs/sources/policy.svg @@ -0,0 +1,117 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="460.32" height="373.987" viewBox="0, 0, 460.32, 373.987"> + <g id="Layer_1" transform="translate(-80.877, -61.824)"> + <g> + <path d="M264.117,94.923 L358.883,94.923 L358.883,410.077 L264.117,410.077 L264.117,94.923 z" fill="#3473E3" fill-opacity="0.146"/> + <path d="M264.117,94.923 L358.883,94.923 L358.883,410.077 L264.117,410.077 L264.117,94.923 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.571" stroke-dasharray="3,2"/> + </g> + <g> + <path d="M311.5,286.5 C292.722,286.5 277.5,271.278 277.5,252.5 C277.5,233.722 292.722,218.5 311.5,218.5 C330.278,218.5 345.5,233.722 345.5,252.5 C345.5,271.278 330.278,286.5 311.5,286.5 z" fill="#FFFFFF"/> + <path d="M311.5,286.5 C292.722,286.5 277.5,271.278 277.5,252.5 C277.5,233.722 292.722,218.5 311.5,218.5 C330.278,218.5 345.5,233.722 345.5,252.5 C345.5,271.278 330.278,286.5 311.5,286.5 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <g> + <path d="M238.008,274.906 L217.017,252.5 L238.008,230.094 z" fill="#FFAB00"/> + <path d="M238.008,274.906 L217.017,252.5 L238.008,230.094 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <path d="M196.025,230.094 L217.017,252.5 L196.025,274.906 z" fill="#FFAB00"/> + <path d="M196.025,230.094 L217.017,252.5 L196.025,274.906 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + </g> + <g> + <g> + <path d="M426.975,274.906 L405.983,252.5 L426.975,230.094 z" fill="#FFAB00"/> + <path d="M426.975,274.906 L405.983,252.5 L426.975,230.094 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <path d="M384.992,230.094 L405.983,252.5 L384.992,274.906 z" fill="#FFAB00"/> + <path d="M384.992,230.094 L405.983,252.5 L384.992,274.906 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + </g> + <g> + <path d="M82.377,96.324 L177.144,96.324 L177.144,411.477 L82.377,411.477 L82.377,96.324 z" fill="#3473E3" fill-opacity="0.146"/> + <path d="M82.377,96.324 L177.144,96.324 L177.144,411.477 L82.377,411.477 L82.377,96.324 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.571" stroke-dasharray="3,2"/> + </g> + <g> + <path d="M129.761,182.311 C110.983,182.311 95.761,167.088 95.761,148.311 C95.761,129.533 110.983,114.311 129.761,114.311 C148.538,114.311 163.761,129.533 163.761,148.311 C163.761,167.088 148.538,182.311 129.761,182.311 z" fill="#FC5B5B"/> + <path d="M129.761,182.311 C110.983,182.311 95.761,167.088 95.761,148.311 C95.761,129.533 110.983,114.311 129.761,114.311 C148.538,114.311 163.761,129.533 163.761,148.311 C163.761,167.088 148.538,182.311 129.761,182.311 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <path d="M129.761,287.311 C110.983,287.311 95.761,272.088 95.761,253.311 C95.761,234.533 110.983,219.311 129.761,219.311 C148.538,219.311 163.761,234.533 163.761,253.311 C163.761,272.088 148.538,287.311 129.761,287.311 z" fill="#5780F2"/> + <path d="M129.761,287.311 C110.983,287.311 95.761,272.088 95.761,253.311 C95.761,234.533 110.983,219.311 129.761,219.311 C148.538,219.311 163.761,234.533 163.761,253.311 C163.761,272.088 148.538,287.311 129.761,287.311 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <path d="M129.761,397.311 C110.983,397.311 95.761,382.088 95.761,363.311 C95.761,344.533 110.983,329.311 129.761,329.311 C148.538,329.311 163.761,344.533 163.761,363.311 C163.761,382.088 148.538,397.311 129.761,397.311 z" fill="#34E367"/> + <path d="M129.761,397.311 C110.983,397.311 95.761,382.088 95.761,363.311 C95.761,344.533 110.983,329.311 129.761,329.311 C148.538,329.311 163.761,344.533 163.761,363.311 C163.761,382.088 148.538,397.311 129.761,397.311 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <text transform="matrix(1, 0, 0, 1, 129.261, 147.811)"> + <tspan x="-7.878" y="8" font-family="HelveticaNeue-Bold" font-size="23" fill="#FFFFFF">A</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 129.479, 252.811)"> + <tspan x="-8.096" y="8" font-family="HelveticaNeue-Bold" font-size="23" fill="#FFFFFF">B</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 129.905, 362.811)"> + <tspan x="-8.521" y="8" font-family="HelveticaNeue-Bold" font-size="23" fill="#FFFFFF">C</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 129.905, 76.234)"> + <tspan x="-34.695" y="8" font-family="HelveticaNeue-Bold" font-size="23" fill="#363636">Adj-IN</tspan> + </text> + <g> + <path d="M445.15,95.324 L539.917,95.324 L539.917,410.477 L445.15,410.477 L445.15,95.324 z" fill="#3473E3" fill-opacity="0.146"/> + <path d="M445.15,95.324 L539.917,95.324 L539.917,410.477 L445.15,410.477 L445.15,95.324 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.571" stroke-dasharray="3,2"/> + </g> + <g> + <path d="M492.534,182.901 C473.756,182.901 458.534,167.678 458.534,148.901 C458.534,130.123 473.756,114.901 492.534,114.901 C511.311,114.901 526.534,130.123 526.534,148.901 C526.534,167.678 511.311,182.901 492.534,182.901 z" fill="#FC5B5B"/> + <path d="M492.534,182.901 C473.756,182.901 458.534,167.678 458.534,148.901 C458.534,130.123 473.756,114.901 492.534,114.901 C511.311,114.901 526.534,130.123 526.534,148.901 C526.534,167.678 511.311,182.901 492.534,182.901 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <path d="M492.534,286.901 C473.756,286.901 458.534,271.678 458.534,252.901 C458.534,234.123 473.756,218.901 492.534,218.901 C511.311,218.901 526.534,234.123 526.534,252.901 C526.534,271.678 511.311,286.901 492.534,286.901 z" fill="#5780F2"/> + <path d="M492.534,286.901 C473.756,286.901 458.534,271.678 458.534,252.901 C458.534,234.123 473.756,218.901 492.534,218.901 C511.311,218.901 526.534,234.123 526.534,252.901 C526.534,271.678 511.311,286.901 492.534,286.901 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <path d="M492.534,396.901 C473.756,396.901 458.534,381.678 458.534,362.901 C458.534,344.123 473.756,328.901 492.534,328.901 C511.311,328.901 526.534,344.123 526.534,362.901 C526.534,381.678 511.311,396.901 492.534,396.901 z" fill="#34E367"/> + <path d="M492.534,396.901 C473.756,396.901 458.534,381.678 458.534,362.901 C458.534,344.123 473.756,328.901 492.534,328.901 C511.311,328.901 526.534,344.123 526.534,362.901 C526.534,381.678 511.311,396.901 492.534,396.901 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <text transform="matrix(1, 0, 0, 1, 492.034, 147.401)"> + <tspan x="-7.878" y="8" font-family="HelveticaNeue-Bold" font-size="23" fill="#FFFFFF">A</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 492.034, 252.4)"> + <tspan x="-8.096" y="8" font-family="HelveticaNeue-Bold" font-size="23" fill="#FFFFFF">B</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 492.034, 362.291)"> + <tspan x="-8.521" y="8" font-family="HelveticaNeue-Bold" font-size="23" fill="#FFFFFF">C</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 492.034, 76.119)"> + <tspan x="-47.277" y="7.705" font-family="HelveticaNeue-Bold" font-size="23" fill="#363636">Adj-OUT</tspan> + </text> + <path d="M164.557,149.901 L196.025,253.311" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M163.761,363.311 L196.025,253.311" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M163.761,253.311 L196.025,253.311" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M238.008,252.589 L277.5,252.5" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M345.5,253.311 L384.992,253.311" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M426.381,252.5 L458.645,252.5" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M426.381,252.5 L458.534,148.901" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M426.381,252.5 L458.534,362.901" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <text transform="matrix(1, 0, 0, 1, 310.601, 76.119)"> + <tspan x="-19.792" y="8" font-family="HelveticaNeue-Bold" font-size="23" fill="#363636">RIB</tspan> + </text> + <g> + <path d="M187.241,112.587 L246.792,112.587 L246.792,393.214 L187.241,393.214 L187.241,112.587 z" fill="#FBAB00" fill-opacity="0.182"/> + <path d="M187.241,112.587 L246.792,112.587 L246.792,393.214 L187.241,393.214 L187.241,112.587 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457" stroke-dasharray="3,2"/> + </g> + <g> + <path d="M375.42,112.587 L434.971,112.587 L434.971,393.214 L375.42,393.214 L375.42,112.587 z" fill="#FBAB00" fill-opacity="0.182"/> + <path d="M375.42,112.587 L434.971,112.587 L434.971,393.214 L375.42,393.214 L375.42,112.587 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457" stroke-dasharray="3,2"/> + </g> + <text transform="matrix(1, 0, 0, 1, 216.517, 416.311)"> + <tspan x="-25.312" y="-3.5" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Import</tspan> + <tspan x="-23.096" y="15.5" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Policy</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 404.696, 416.311)"> + <tspan x="-25.184" y="-3.5" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Export</tspan> + <tspan x="-23.096" y="15.5" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Policy</tspan> + </text> + </g> +</svg> diff --git a/docs/sources/policy_component.svg b/docs/sources/policy_component.svg new file mode 100644 index 00000000..05f9c350 --- /dev/null +++ b/docs/sources/policy_component.svg @@ -0,0 +1,195 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="717.356" height="530.298" viewBox="0, 0, 717.356, 530.298"> + <g id="Layer_1" transform="translate(-9.234, -15.25)"> + <g> + <path d="M10.734,16.75 L163.734,16.75 L163.734,326.75 L10.734,326.75 L10.734,16.75 z" fill="#FFFFFF" fill-opacity="0.182"/> + <path d="M10.734,16.75 L163.734,16.75 L163.734,326.75 L10.734,326.75 L10.734,16.75 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + </g> + <g> + <path d="M179.734,16.75 L332.734,16.75 L332.734,163.75 L179.734,163.75 L179.734,16.75 z" fill="#FFFFFF" fill-opacity="0.182"/> + <path d="M179.734,16.75 L332.734,16.75 L332.734,163.75 L179.734,163.75 L179.734,16.75 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + </g> + <g> + <path d="M188.734,49.75 L323.734,49.75 L323.734,93.75 L188.734,93.75 L188.734,49.75 z" fill="#FFFFFF" fill-opacity="0.182"/> + <path d="M188.734,49.75 L323.734,49.75 L323.734,93.75 L188.734,93.75 L188.734,49.75 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + </g> + <text transform="matrix(1, 0, 0, 1, 242.038, 66.25)"> + <tspan x="-49.195" y="4" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Condition</tspan> + </text> + <g> + <path d="M188.734,107.75 L323.734,107.75 L323.734,152.75 L188.734,152.75 L188.734,107.75 z" fill="#FFFFFF" fill-opacity="0.182"/> + <path d="M188.734,107.75 L323.734,107.75 L323.734,152.75 L188.734,152.75 L188.734,107.75 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + </g> + <text transform="matrix(1, 0, 0, 1, 235.429, 126.25)"> + <tspan x="-42.195" y="4" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Action</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 242.429, 32.25)"> + <tspan x="-49.195" y="4" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Statement</tspan> + </text> + <g> + <path d="M19.734,48.75 L154.734,48.75 L154.734,114.75 L19.734,114.75 L19.734,48.75 z" fill="#FFFFFF" fill-opacity="0.182"/> + <path d="M19.734,48.75 L154.734,48.75 L154.734,114.75 L19.734,114.75 L19.734,48.75 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + </g> + <text transform="matrix(1, 0, 0, 1, 74.038, 66.25)"> + <tspan x="-49.195" y="4" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Statement</tspan> + </text> + <g> + <path d="M19.734,126.75 L154.734,126.75 L154.734,192.75 L19.734,192.75 L19.734,126.75 z" fill="#FFFFFF" fill-opacity="0.182"/> + <path d="M19.734,126.75 L154.734,126.75 L154.734,192.75 L19.734,192.75 L19.734,126.75 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + </g> + <text transform="matrix(1, 0, 0, 1, 74.038, 144.25)"> + <tspan x="-49.195" y="4" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Statement</tspan> + </text> + <g> + <path d="M19.734,251.126 L154.734,251.126 L154.734,317.126 L19.734,317.126 L19.734,251.126 z" fill="#FFFFFF" fill-opacity="0.182"/> + <path d="M19.734,251.126 L154.734,251.126 L154.734,317.126 L19.734,317.126 L19.734,251.126 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + </g> + <text transform="matrix(1, 0, 0, 1, 74.038, 269.25)"> + <tspan x="-49.195" y="4" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Statement</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 52.429, 34.25)"> + <tspan x="-27.195" y="4" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Policy</tspan> + </text> + <text transform="matrix(-0, -1, 1, -0, 95.853, 222.75)"> + <tspan x="-13.877" y="-6.38" font-family="HelveticaNeue-Bold" font-size="22" fill="#363636">…</tspan> + </text> + <g> + <path d="M349.734,16.75 L522.734,16.75 L522.734,163.75 L349.734,163.75 L349.734,16.75 z" fill="#FFFFFF" fill-opacity="0.182"/> + <path d="M349.734,16.75 L522.734,16.75 L522.734,163.75 L349.734,163.75 L349.734,16.75 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + </g> + <path d="M353.03,509.618 L353.03,508.375" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + <text transform="matrix(1, 0, 0, 1, 412.429, 32.25)"> + <tspan x="-49.195" y="4" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Condition</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 437.136, 99.25)"> + <tspan x="-80.293" y="-41" font-family="HelveticaNeue-Bold" font-size="12" fill="#363636">- prefix-set-name</tspan> + <tspan x="-80.293" y="-26" font-family="HelveticaNeue-Bold" font-size="12" fill="#363636">- neighbor-set-name</tspan> + <tspan x="-80.293" y="-11" font-family="HelveticaNeue-Bold" font-size="12" fill="#363636">- community-set-name</tspan> + <tspan x="-80.293" y="4" font-family="HelveticaNeue-Bold" font-size="12" fill="#363636">- ext-community-set-name</tspan> + <tspan x="-80.293" y="19" font-family="HelveticaNeue-Bold" font-size="12" fill="#363636">- as-path-set-name</tspan> + <tspan x="-80.293" y="34" font-family="HelveticaNeue-Bold" font-size="12" fill="#363636">- as-path-length</tspan> + <tspan x="-80.293" y="49" font-family="HelveticaNeue-Bold" font-size="12" fill="#363636">- rpki-validation-result</tspan> + </text> + <g> + <path d="M535.583,16.75 L726.089,16.75 L726.089,545.048 L535.583,545.048 L535.583,16.75 z" fill="#FFFFFF" fill-opacity="0.182"/> + <path d="M535.583,16.75 L726.089,16.75 L726.089,545.048 L535.583,545.048 L535.583,16.75 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + </g> + <g> + <path d="M349.734,183.75 L522.734,183.75 L522.734,291.503 L349.734,291.503 L349.734,183.75 z" fill="#FFFFFF" fill-opacity="0.182"/> + <path d="M349.734,183.75 L522.734,183.75 L522.734,291.503 L349.734,291.503 L349.734,183.75 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + </g> + <text transform="matrix(1, 0, 0, 1, 412.429, 199.25)"> + <tspan x="-49.195" y="4" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Action</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 437.136, 249.003)"> + <tspan x="-80.293" y="-26" font-family="HelveticaNeue-Bold" font-size="12" fill="#363636">- accept/reject</tspan> + <tspan x="-80.293" y="-11" font-family="HelveticaNeue-Bold" font-size="12" fill="#363636">- add/remove community/</tspan> + <tspan x="-80.293" y="4" font-family="HelveticaNeue-Bold" font-size="12" fill="#363636">ext-community</tspan> + <tspan x="-80.293" y="19" font-family="HelveticaNeue-Bold" font-size="12" fill="#363636">- prepend as-path</tspan> + <tspan x="-80.293" y="34" font-family="HelveticaNeue-Bold" font-size="12" fill="#363636">- manipulate MED</tspan> + </text> + <path d="M154.734,78.75 L179.734,78.75" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + <path d="M323.734,72.527 L349.734,39.527" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + <path d="M323.734,129.75 L349.734,205.75" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + <g> + <g> + <path d="M547.466,46.75 L713.843,46.75 L713.843,134.75 L547.466,134.75 L547.466,46.75 z" fill="#FFFFFF" fill-opacity="0.182"/> + <path d="M547.466,46.75 L713.843,46.75 L713.843,134.75 L547.466,134.75 L547.466,46.75 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + </g> + <text transform="matrix(1, 0, 0, 1, 602.144, 61.25)"> + <tspan x="-47.935" y="6" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Prefix Sets</tspan> + </text> + <g> + <path d="M554.705,77.007 L702.846,76.978 L702.853,105.237 L554.712,105.266 L554.705,77.007 z" fill="#FFFFFF" fill-opacity="0.182"/> + <path d="M554.705,77.007 L702.846,76.978 L702.853,105.237 L554.712,105.266 L554.705,77.007 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + </g> + <text transform="matrix(1, 0, 0, 1, 595.312, 92.627)"> + <tspan x="-35.867" y="-0.13" font-family="HelveticaNeue-Bold" font-size="12" fill="#363636">prefix-set</tspan> + </text> + <text transform="matrix(-0, -1, 1, -0, 640.615, 116.373)"> + <tspan x="-13.877" y="-10.105" font-family="HelveticaNeue-Bold" font-size="22" fill="#363636">…</tspan> + </text> + </g> + <text transform="matrix(1, 0, 0, 1, 590.91, 32.25)"> + <tspan x="-49.195" y="4" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Defined Sets</tspan> + </text> + <g> + <g> + <path d="M547.466,145.46 L713.843,145.46 L713.843,233.46 L547.466,233.46 L547.466,145.46 z" fill="#FFFFFF" fill-opacity="0.182"/> + <path d="M547.466,145.46 L713.843,145.46 L713.843,233.46 L547.466,233.46 L547.466,145.46 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + </g> + <text transform="matrix(1, 0, 0, 1, 618.683, 160.648)"> + <tspan x="-64.474" y="5.312" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Neighbor Sets</tspan> + </text> + <g> + <path d="M554.705,175.717 L702.846,175.688 L702.853,203.947 L554.712,203.976 L554.705,175.717 z" fill="#FFFFFF" fill-opacity="0.182"/> + <path d="M554.705,175.717 L702.846,175.688 L702.853,203.947 L554.712,203.976 L554.705,175.717 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + </g> + <text transform="matrix(1, 0, 0, 1, 615.332, 194.707)"> + <tspan x="-55.888" y="-3.5" font-family="HelveticaNeue-Bold" font-size="12" fill="#363636">neighbor-set</tspan> + </text> + <text transform="matrix(-0, -1, 1, -0, 640.615, 215.084)"> + <tspan x="-13.877" y="-10.105" font-family="HelveticaNeue-Bold" font-size="22" fill="#363636">…</tspan> + </text> + </g> + <g> + <g> + <path d="M547.466,245.709 L713.843,245.709 L713.843,333.709 L547.466,333.709 L547.466,245.709 z" fill="#FFFFFF" fill-opacity="0.182"/> + <path d="M547.466,245.709 L713.843,245.709 L713.843,333.709 L547.466,333.709 L547.466,245.709 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + </g> + <text transform="matrix(1, 0, 0, 1, 631.74, 260.897)"> + <tspan x="-77.531" y="5.312" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Community Sets</tspan> + </text> + <g> + <path d="M554.705,275.966 L702.846,275.937 L702.853,304.196 L554.712,304.225 L554.705,275.966 z" fill="#FFFFFF" fill-opacity="0.182"/> + <path d="M554.705,275.966 L702.846,275.937 L702.853,304.196 L554.712,304.225 L554.705,275.966 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + </g> + <text transform="matrix(1, 0, 0, 1, 618.814, 294.956)"> + <tspan x="-59.369" y="-3.5" font-family="HelveticaNeue-Bold" font-size="12" fill="#363636">community-set</tspan> + </text> + <text transform="matrix(-0, -1, 1, -0, 640.615, 315.333)"> + <tspan x="-13.877" y="-10.105" font-family="HelveticaNeue-Bold" font-size="22" fill="#363636">…</tspan> + </text> + </g> + <g> + <g> + <path d="M547.466,345.595 L713.843,345.595 L713.843,433.595 L547.466,433.595 L547.466,345.595 z" fill="#FFFFFF" fill-opacity="0.182"/> + <path d="M547.466,345.595 L713.843,345.595 L713.843,433.595 L547.466,433.595 L547.466,345.595 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + </g> + <text transform="matrix(1, 0, 0, 1, 631.55, 369.595)"> + <tspan x="-78.209" y="-3.5" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">ExtCommunity Sets</tspan> + </text> + <g> + <path d="M553.839,375.852 L702.63,375.819 L702.636,404.079 L553.845,404.112 L553.839,375.852 z" fill="#FFFFFF" fill-opacity="0.182"/> + <path d="M553.839,375.852 L702.63,375.819 L702.636,404.079 L553.845,404.112 L553.839,375.852 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + </g> + <text transform="matrix(1, 0, 0, 1, 616.341, 402.342)"> + <tspan x="-58.39" y="-11" font-family="HelveticaNeue-Bold" font-size="12" fill="#363636">ext-community-set</tspan> + </text> + <text transform="matrix(-0, -1, 1, -0, 638.401, 415.219)"> + <tspan x="-13.877" y="-6.38" font-family="HelveticaNeue-Bold" font-size="22" fill="#363636">…</tspan> + </text> + </g> + <g> + <g> + <path d="M547.466,445.148 L713.843,445.148 L713.843,533.148 L547.466,533.148 L547.466,445.148 z" fill="#FFFFFF" fill-opacity="0.182"/> + <path d="M547.466,445.148 L713.843,445.148 L713.843,533.148 L547.466,533.148 L547.466,445.148 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + </g> + <text transform="matrix(1, 0, 0, 1, 602.144, 459.648)"> + <tspan x="-47.935" y="6" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">AsPath Sets</tspan> + </text> + <g> + <path d="M554.705,475.405 L702.846,475.376 L702.853,503.635 L554.712,503.664 L554.705,475.405 z" fill="#FFFFFF" fill-opacity="0.182"/> + <path d="M554.705,475.405 L702.846,475.376 L702.853,503.635 L554.712,503.664 L554.705,475.405 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + </g> + <text transform="matrix(1, 0, 0, 1, 595.312, 491.024)"> + <tspan x="-35.867" y="-0.13" font-family="HelveticaNeue-Bold" font-size="12" fill="#363636">as-path-set</tspan> + </text> + <text transform="matrix(-0, -1, 1, -0, 640.615, 514.771)"> + <tspan x="-13.877" y="-10.105" font-family="HelveticaNeue-Bold" font-size="22" fill="#363636">…</tspan> + </text> + </g> + <path d="M522.466,56.027 L547.466,56.027" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457"/> + </g> +</svg> diff --git a/docs/sources/rs-policy.png b/docs/sources/rs-policy.png Binary files differnew file mode 100644 index 00000000..3f0a2ea5 --- /dev/null +++ b/docs/sources/rs-policy.png diff --git a/docs/sources/rs-policy.svg b/docs/sources/rs-policy.svg new file mode 100644 index 00000000..fbf7685c --- /dev/null +++ b/docs/sources/rs-policy.svg @@ -0,0 +1,246 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="595.068" height="385.215" viewBox="0, 0, 595.068, 385.215"> + <g id="Layer_1" transform="translate(4, -227.785)"> + <g> + <path d="M134.191,280.158 L193.741,280.158 L193.741,560.784 L134.191,560.784 L134.191,280.158 z" fill="#FBAB00" fill-opacity="0.182"/> + <path d="M134.191,280.158 L193.741,280.158 L193.741,560.784 L134.191,560.784 L134.191,280.158 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457" stroke-dasharray="3,2"/> + </g> + <g> + <path d="M469.953,261.285 L564.719,261.285 L564.719,576.439 L469.953,576.439 L469.953,261.285 z" fill="#3473E3" fill-opacity="0.146"/> + <path d="M469.953,261.285 L564.719,261.285 L564.719,576.439 L469.953,576.439 L469.953,261.285 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.571" stroke-dasharray="3,2"/> + </g> + <g> + <path d="M29.358,261.875 L124.125,261.875 L124.125,577.029 L29.358,577.029 L29.358,261.875 z" fill="#3473E3" fill-opacity="0.146"/> + <path d="M29.358,261.875 L124.125,261.875 L124.125,577.029 L29.358,577.029 L29.358,261.875 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.571" stroke-dasharray="3,2"/> + </g> + <g> + <path d="M296.941,261.875 L391.707,261.875 L391.707,577.029 L296.941,577.029 L296.941,261.875 z" fill="#3473E3" fill-opacity="0.146"/> + <path d="M296.941,261.875 L391.707,261.875 L391.707,577.029 L296.941,577.029 L296.941,261.875 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.571" stroke-dasharray="3,2"/> + </g> + <g> + <path d="M76.742,347.862 C57.964,347.862 42.742,332.639 42.742,313.862 C42.742,295.084 57.964,279.862 76.742,279.862 C95.519,279.862 110.742,295.084 110.742,313.862 C110.742,332.639 95.519,347.862 76.742,347.862 z" fill="#FC5B5B"/> + <path d="M76.742,347.862 C57.964,347.862 42.742,332.639 42.742,313.862 C42.742,295.084 57.964,279.862 76.742,279.862 C95.519,279.862 110.742,295.084 110.742,313.862 C110.742,332.639 95.519,347.862 76.742,347.862 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <path d="M76.742,452.862 C57.964,452.862 42.742,437.639 42.742,418.862 C42.742,400.084 57.964,384.862 76.742,384.862 C95.519,384.862 110.742,400.084 110.742,418.862 C110.742,437.639 95.519,452.862 76.742,452.862 z" fill="#5780F2"/> + <path d="M76.742,452.862 C57.964,452.862 42.742,437.639 42.742,418.862 C42.742,400.084 57.964,384.862 76.742,384.862 C95.519,384.862 110.742,400.084 110.742,418.862 C110.742,437.639 95.519,452.862 76.742,452.862 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <path d="M76.742,562.862 C57.964,562.862 42.742,547.639 42.742,528.862 C42.742,510.084 57.964,494.862 76.742,494.862 C95.519,494.862 110.742,510.084 110.742,528.862 C110.742,547.639 95.519,562.862 76.742,562.862 z" fill="#34E367"/> + <path d="M76.742,562.862 C57.964,562.862 42.742,547.639 42.742,528.862 C42.742,510.084 57.964,494.862 76.742,494.862 C95.519,494.862 110.742,510.084 110.742,528.862 C110.742,547.639 95.519,562.862 76.742,562.862 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <g> + <path d="M277.647,441.267 L256.655,418.862 L277.647,396.456 z" fill="#FBAB00"/> + <path d="M277.647,441.267 L256.655,418.862 L277.647,396.456 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <path d="M235.664,396.456 L256.655,418.862 L235.664,441.267 z" fill="#FBAB00"/> + <path d="M235.664,396.456 L256.655,418.862 L235.664,441.267 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + </g> + <g> + <g> + <path d="M276.647,336.267 L255.655,313.862 L276.647,291.456 z" fill="#FBAB00"/> + <path d="M276.647,336.267 L255.655,313.862 L276.647,291.456 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <path d="M234.664,291.456 L255.655,313.862 L234.664,336.267 z" fill="#FBAB00"/> + <path d="M234.664,291.456 L255.655,313.862 L234.664,336.267 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + </g> + <g> + <g> + <path d="M277.647,551.268 L256.655,528.862 L277.647,506.456 z" fill="#FBAB00"/> + <path d="M277.647,551.268 L256.655,528.862 L277.647,506.456 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <path d="M235.664,506.456 L256.655,528.862 L235.664,551.268 z" fill="#FBAB00"/> + <path d="M235.664,506.456 L256.655,528.862 L235.664,551.268 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + </g> + <g> + <g> + <path d="M452.828,441.267 L431.836,418.862 L452.828,396.456 z" fill="#FBAB00"/> + <path d="M452.828,441.267 L431.836,418.862 L452.828,396.456 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <path d="M410.844,396.456 L431.836,418.862 L410.844,441.267 z" fill="#FBAB00"/> + <path d="M410.844,396.456 L431.836,418.862 L410.844,441.267 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + </g> + <g> + <g> + <path d="M451.828,336.268 L430.836,313.862 L451.828,291.456 z" fill="#FBAB00"/> + <path d="M451.828,336.268 L430.836,313.862 L451.828,291.456 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <path d="M409.844,291.456 L430.836,313.862 L409.844,336.268 z" fill="#FBAB00"/> + <path d="M409.844,291.456 L430.836,313.862 L409.844,336.268 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + </g> + <g> + <g> + <path d="M452.242,551.267 L431.25,528.862 L452.242,506.456 z" fill="#FBAB00"/> + <path d="M452.242,551.267 L431.25,528.862 L452.242,506.456 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <path d="M410.258,506.456 L431.25,528.862 L410.258,551.267 z" fill="#FBAB00"/> + <path d="M410.258,506.456 L431.25,528.862 L410.258,551.267 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + </g> + <g> + <path d="M343.742,348.862 C324.964,348.862 309.742,333.639 309.742,314.862 C309.742,296.084 324.964,280.862 343.742,280.862 C362.519,280.862 377.742,296.084 377.742,314.862 C377.742,333.639 362.519,348.862 343.742,348.862 z" fill="#FC5B5B"/> + <path d="M343.742,348.862 C324.964,348.862 309.742,333.639 309.742,314.862 C309.742,296.084 324.964,280.862 343.742,280.862 C362.519,280.862 377.742,296.084 377.742,314.862 C377.742,333.639 362.519,348.862 343.742,348.862 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <path d="M343.742,452.862 C324.964,452.862 309.742,437.639 309.742,418.862 C309.742,400.084 324.964,384.862 343.742,384.862 C362.519,384.862 377.742,400.084 377.742,418.862 C377.742,437.639 362.519,452.862 343.742,452.862 z" fill="#5780F2"/> + <path d="M343.742,452.862 C324.964,452.862 309.742,437.639 309.742,418.862 C309.742,400.084 324.964,384.862 343.742,384.862 C362.519,384.862 377.742,400.084 377.742,418.862 C377.742,437.639 362.519,452.862 343.742,452.862 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <path d="M343.742,562.862 C324.964,562.862 309.742,547.639 309.742,528.862 C309.742,510.084 324.964,494.862 343.742,494.862 C362.519,494.862 377.742,510.084 377.742,528.862 C377.742,547.639 362.519,562.862 343.742,562.862 z" fill="#34E367"/> + <path d="M343.742,562.862 C324.964,562.862 309.742,547.639 309.742,528.862 C309.742,510.084 324.964,494.862 343.742,494.862 C362.519,494.862 377.742,510.084 377.742,528.862 C377.742,547.639 362.519,562.862 343.742,562.862 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <g> + <path d="M185.328,441.268 L164.336,418.862 L185.328,396.456 z" fill="#FBAB00"/> + <path d="M185.328,441.268 L164.336,418.862 L185.328,396.456 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <path d="M143.344,396.456 L164.336,418.862 L143.344,441.268 z" fill="#FBAB00"/> + <path d="M143.344,396.456 L164.336,418.862 L143.344,441.268 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + </g> + <g> + <g> + <path d="M184.958,336.268 L163.966,313.862 L184.958,291.456 z" fill="#FFAB00"/> + <path d="M184.958,336.268 L163.966,313.862 L184.958,291.456 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <path d="M142.974,291.456 L163.966,313.862 L142.974,336.268 z" fill="#FFAB00"/> + <path d="M142.974,291.456 L163.966,313.862 L142.974,336.268 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + </g> + <g> + <g> + <path d="M185.328,551.268 L164.336,528.862 L185.328,506.456 z" fill="#FBAB00"/> + <path d="M185.328,551.268 L164.336,528.862 L185.328,506.456 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <path d="M143.344,506.456 L164.336,528.862 L143.344,551.268 z" fill="#FBAB00"/> + <path d="M143.344,506.456 L164.336,528.862 L143.344,551.268 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + </g> + <path d="M110.742,528.862 L142.974,528.862" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M185.742,528.862 L236.25,418.689" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M185.742,528.862 L234.836,314.081" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M111.245,419.822 L143.477,419.822" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M111.245,315.266 L143.477,315.266" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M278.233,314.081 L309.742,313.862" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M278.647,418.971 L310.156,418.752" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M278.647,528.862 L310.156,528.643" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <g> + <path d="M517.336,348.862 C498.558,348.862 483.336,333.639 483.336,314.862 C483.336,296.084 498.558,280.862 517.336,280.862 C536.114,280.862 551.336,296.084 551.336,314.862 C551.336,333.639 536.114,348.862 517.336,348.862 z" fill="#FC5B5B"/> + <path d="M517.336,348.862 C498.558,348.862 483.336,333.639 483.336,314.862 C483.336,296.084 498.558,280.862 517.336,280.862 C536.114,280.862 551.336,296.084 551.336,314.862 C551.336,333.639 536.114,348.862 517.336,348.862 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <path d="M517.336,452.862 C498.558,452.862 483.336,437.639 483.336,418.862 C483.336,400.084 498.558,384.862 517.336,384.862 C536.114,384.862 551.336,400.084 551.336,418.862 C551.336,437.639 536.114,452.862 517.336,452.862 z" fill="#5780F2"/> + <path d="M517.336,452.862 C498.558,452.862 483.336,437.639 483.336,418.862 C483.336,400.084 498.558,384.862 517.336,384.862 C536.114,384.862 551.336,400.084 551.336,418.862 C551.336,437.639 536.114,452.862 517.336,452.862 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <g> + <path d="M517.336,562.862 C498.558,562.862 483.336,547.639 483.336,528.862 C483.336,510.084 498.558,494.862 517.336,494.862 C536.114,494.862 551.336,510.084 551.336,528.862 C551.336,547.639 536.114,562.862 517.336,562.862 z" fill="#34E367"/> + <path d="M517.336,562.862 C498.558,562.862 483.336,547.639 483.336,528.862 C483.336,510.084 498.558,494.862 517.336,494.862 C536.114,494.862 551.336,510.084 551.336,528.862 C551.336,547.639 536.114,562.862 517.336,562.862 z" fill-opacity="0" stroke="#000000" stroke-width="1"/> + </g> + <path d="M451.828,314.081 L483.336,313.862" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M452.242,418.971 L483.75,418.752" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M452.242,528.862 L483.75,528.643" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M377.742,314.3 L409.25,314.081" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M377.662,419.025 L409.17,418.806" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M377.742,530.229 L409.25,530.01" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M185.328,315.266 L236.25,418.689" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M185.328,315.266 L236.25,530.01" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M185.742,419.822 L234.836,314.081" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M185.742,419.822 L236.25,530.01" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <g> + <path d="M226.88,280.158 L286.431,280.158 L286.431,560.784 L226.88,560.784 L226.88,280.158 z" fill="#FBAB00" fill-opacity="0.182"/> + <path d="M226.88,280.158 L286.431,280.158 L286.431,560.784 L226.88,560.784 L226.88,280.158 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457" stroke-dasharray="3,2"/> + </g> + <g> + <path d="M401.061,280.158 L460.611,280.158 L460.611,560.784 L401.061,560.784 L401.061,280.158 z" fill="#FBAB00" fill-opacity="0.182"/> + <path d="M401.061,280.158 L460.611,280.158 L460.611,560.784 L401.061,560.784 L401.061,280.158 z" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0.457" stroke-dasharray="3,2"/> + </g> + <text transform="matrix(1, 0, 0, 1, 76.242, 313.362)"> + <tspan x="-7.878" y="8" font-family="HelveticaNeue-Bold" font-size="23" fill="#FFFFFF">A</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 343.824, 313.362)"> + <tspan x="-7.878" y="8" font-family="HelveticaNeue-Bold" font-size="23" fill="#FFFFFF">A</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 516.836, 313.362)"> + <tspan x="-7.878" y="8" font-family="HelveticaNeue-Bold" font-size="23" fill="#FFFFFF">A</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 76.46, 418.362)"> + <tspan x="-8.096" y="8" font-family="HelveticaNeue-Bold" font-size="23" fill="#FFFFFF">B</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 343.824, 418.362)"> + <tspan x="-8.096" y="8" font-family="HelveticaNeue-Bold" font-size="23" fill="#FFFFFF">B</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 516.836, 418.362)"> + <tspan x="-8.096" y="8" font-family="HelveticaNeue-Bold" font-size="23" fill="#FFFFFF">B</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 76.886, 528.362)"> + <tspan x="-8.521" y="8" font-family="HelveticaNeue-Bold" font-size="23" fill="#FFFFFF">C</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 343.667, 528.252)"> + <tspan x="-8.521" y="8" font-family="HelveticaNeue-Bold" font-size="23" fill="#FFFFFF">C</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 516.836, 528.252)"> + <tspan x="-8.521" y="8" font-family="HelveticaNeue-Bold" font-size="23" fill="#FFFFFF">C</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 76.886, 241.785)"> + <tspan x="-34.695" y="8" font-family="HelveticaNeue-Bold" font-size="23" fill="#363636">Adj-IN</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 345.024, 242.08)"> + <tspan x="-44.919" y="7.705" font-family="HelveticaNeue-Bold" font-size="23" fill="#363636">Loc-RIB</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 516.836, 242.08)"> + <tspan x="-47.277" y="7.705" font-family="HelveticaNeue-Bold" font-size="23" fill="#363636">Adj-OUT</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 163.836, 592.5)"> + <tspan x="-7.104" y="-3.5" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">In</tspan> + <tspan x="-23.096" y="15.5" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Policy</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 255.155, 592.5)"> + <tspan x="-25.312" y="-3.5" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Import</tspan> + <tspan x="-23.096" y="15.5" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Policy</tspan> + </text> + <text transform="matrix(1, 0, 0, 1, 431.336, 593.5)"> + <tspan x="-25.184" y="-3.5" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Export</tspan> + <tspan x="-23.096" y="15.5" font-family="HelveticaNeue-Bold" font-size="16" fill="#363636">Policy</tspan> + </text> + <g> + <path d="M2.5,315.266 L25.733,315.266" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M25.733,318.266 L33.733,315.266 L25.733,312.266 z" fill="#000000" fill-opacity="1" stroke="#000000" stroke-width="1" stroke-opacity="1"/> + </g> + <g> + <path d="M2.5,420.471 L25.733,420.471" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M25.733,423.471 L33.733,420.471 L25.733,417.471 z" fill="#000000" fill-opacity="1" stroke="#000000" stroke-width="1" stroke-opacity="1"/> + </g> + <g> + <path d="M2.5,528.752 L25.733,528.752" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M25.733,531.752 L33.733,528.752 L25.733,525.752 z" fill="#000000" fill-opacity="1" stroke="#000000" stroke-width="1" stroke-opacity="1"/> + </g> + <g> + <path d="M553.336,315.156 L576.568,315.156" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M576.568,318.156 L584.568,315.156 L576.568,312.156 z" fill="#000000" fill-opacity="1" stroke="#000000" stroke-width="1" stroke-opacity="1"/> + </g> + <g> + <path d="M553.336,420.362 L576.568,420.362" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M576.568,423.362 L584.568,420.362 L576.568,417.362 z" fill="#000000" fill-opacity="1" stroke="#000000" stroke-width="1" stroke-opacity="1"/> + </g> + <g> + <path d="M553.336,528.643 L576.568,528.643" fill-opacity="0" stroke="#000000" stroke-width="1"/> + <path d="M576.568,531.643 L584.568,528.643 L576.568,525.643 z" fill="#000000" fill-opacity="1" stroke="#000000" stroke-width="1" stroke-opacity="1"/> + </g> + </g> +</svg> |