summaryrefslogtreecommitdiff
path: root/interface-definitions/interfaces-macsec.xml.in
blob: f2f2e96f1e7a4c4b07cd4728234722e110094a0c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?xml version="1.0"?>
<interfaceDefinition>
  <node name="interfaces">
    <children>
      <tagNode name="macsec" owner="${vyos_conf_scripts_dir}/interfaces-macsec.py">
        <properties>
          <help>MACsec Interface (802.1ae)</help>
          <priority>461</priority>
          <constraint>
            <regex>^macsec[0-9]+$</regex>
          </constraint>
          <constraintErrorMessage>MACsec interface must be named macsecN</constraintErrorMessage>
          <valueHelp>
            <format>macsecN</format>
            <description>MACsec interface name</description>
          </valueHelp>
        </properties>
        <children>
          #include <include/interface/address-ipv4-ipv6-dhcp.xml.i>
          #include <include/interface/dhcp-options.xml.i>
          #include <include/interface/dhcpv6-options.xml.i>
          #include <include/interface/ipv4-options.xml.i>
          #include <include/interface/ipv6-options.xml.i>
          <node name="security">
            <properties>
              <help>Security/Encryption Settings</help>
            </properties>
            <children>
              <leafNode name="cipher">
                <properties>
                  <help>Cipher suite used</help>
                  <completionHelp>
                    <list>gcm-aes-128 gcm-aes-256</list>
                  </completionHelp>
                  <valueHelp>
                    <format>gcm-aes-128</format>
                    <description>Galois/Counter Mode of AES cipher with 128-bit key (default)</description>
                  </valueHelp>
                  <valueHelp>
                    <format>gcm-aes-256</format>
                    <description>Galois/Counter Mode of AES cipher with 256-bit key</description>
                  </valueHelp>
                  <constraint>
                    <regex>^(gcm-aes-128|gcm-aes-256)$</regex>
                  </constraint>
                </properties>
              </leafNode>
              <leafNode name="encrypt">
                <properties>
                  <help>Enable optional MACsec encryption</help>
                  <valueless/>
                </properties>
              </leafNode>
              <node name="mka">
                <properties>
                  <help>MACsec Key Agreement protocol (MKA)</help>
                </properties>
                <children>
                  <leafNode name="cak">
                    <properties>
                      <help>Secure Connectivity Association Key</help>
                      <valueHelp>
                        <format>txt</format>
                        <description>16-byte (128-bit) hex-string (32 hex-digits) for gcm-aes-128 or 32-byte (256-bit) hex-string (64 hex-digits) for gcm-aes-256</description>
                      </valueHelp>
                      <constraint>
                        <regex>[A-Fa-f0-9]{32}</regex>
                        <regex>[A-Fa-f0-9]{64}</regex>
                      </constraint>
                    </properties>
                  </leafNode>
                  <leafNode name="ckn">
                    <properties>
                      <help>Secure Connectivity Association Key Name</help>
                      <valueHelp>
                        <format>txt</format>
                        <description>>1..32-bytes (8..256 bit) hex-string (2..64 hex-digits)</description>
                      </valueHelp>
                      <constraint>
                        <regex>^[A-Fa-f0-9]{2,64}$</regex>
                      </constraint>
                    </properties>
                  </leafNode>
                  <leafNode name="priority">
                    <properties>
                      <help>Priority of MACsec Key Agreement protocol (MKA) actor</help>
                      <valueHelp>
                        <format>u32:0-255</format>
                        <description>MACsec Key Agreement protocol (MKA) priority</description>
                      </valueHelp>
                      <constraint>
                        <validator name="numeric" argument="--range 0-255" />
                      </constraint>
                    </properties>
                    <defaultValue>255</defaultValue>
                  </leafNode>
                </children>
              </node>
              <leafNode name="replay-window">
                <properties>
                  <help>IEEE 802.1X/MACsec replay protection window</help>
                  <valueHelp>
                    <format>u32:0</format>
                    <description>No replay window, strict check</description>
                  </valueHelp>
                  <valueHelp>
                    <format>u32:1-4294967295</format>
                    <description>Number of packets that could be misordered</description>
                  </valueHelp>
                  <constraint>
                    <validator name="numeric" argument="--range 0-4294967295" />
                  </constraint>
                </properties>
              </leafNode>
            </children>
          </node>
          #include <include/interface/description.xml.i>
          #include <include/interface/disable.xml.i>
          #include <include/interface/mtu-68-16000.xml.i>
          <leafNode name="mtu">
            <defaultValue>1460</defaultValue>
          </leafNode>
          #include <include/source-interface-ethernet.xml.i>
          #include <include/interface/vrf.xml.i>
        </children>
      </tagNode>
    </children>
  </node>
</interfaceDefinition>