summaryrefslogtreecommitdiff
path: root/interface-definitions/service-upnp.xml.in
blob: 79d8ae42eddd8683c85580d867eaf59d30407709 (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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
<?xml version="1.0"?>
<interfaceDefinition>
  <node name="service">
    <children>
      <node name="upnp" owner="${vyos_conf_scripts_dir}/service_upnp.py">
        <properties>
          <help>Universal Plug and Play (UPnP) service</help>
          <priority>900</priority>
        </properties>
        <children>
          <leafNode name="friendly-name">
            <properties>
              <help>Name of this service</help>
              <valueHelp>
                <format>txt</format>
                <description>Friendly name</description>
              </valueHelp>
            </properties>
          </leafNode>
          <leafNode name="wan-interface">
            <properties>
              <help>WAN network interface</help>
              <completionHelp>
                <script>${vyos_completion_dir}/list_interfaces.py</script>
              </completionHelp>
              <constraint>
                #include <include/constraint/interface-name.xml.in>
              </constraint>
            </properties>
          </leafNode>
          <leafNode name="wan-ip">
            <properties>
              <help>WAN network IP</help>
              <valueHelp>
                <format>ipv4</format>
                <description>IPv4 address</description>
              </valueHelp>
              <valueHelp>
                <format>ipv6</format>
                <description>IPv6 address</description>
              </valueHelp>
              <constraint>
                <validator name="ipv4-address" />
                <validator name="ipv6-address" />
              </constraint>
              <multi/>
            </properties>
          </leafNode>
          <leafNode name="nat-pmp">
            <properties>
              <help>Enable NAT-PMP support</help>
              <valueless />
            </properties>
          </leafNode>
          <leafNode name="secure-mode">
            <properties>
              <help>Enable Secure Mode</help>
              <valueless />
            </properties>
          </leafNode>
          <leafNode name="presentation-url">
            <properties>
              <help>Presentation Url</help>
              <valueHelp>
                <format>txt</format>
                <description>Presentation Url</description>
              </valueHelp>
            </properties>
          </leafNode>
          <node name="pcp-lifetime">
            <properties>
              <help>PCP-base lifetime Option</help>
            </properties>
            <children>
              <leafNode name="max">
                <properties>
                  <help>Max lifetime time</help>
                  <constraint>
                    <validator name="numeric" />
                  </constraint>
                </properties>
              </leafNode>
              <leafNode name="min">
                <properties>
                  <help>Min lifetime time</help>
                  <constraint>
                    <validator name="numeric" />
                  </constraint>
                </properties>
              </leafNode>
            </children>
          </node>
          <leafNode name="listen">
            <properties>
              <help>Local IP addresses for service to listen on</help>
              <completionHelp>
                <script>${vyos_completion_dir}/list_local_ips.sh --both</script>
                <script>${vyos_completion_dir}/list_interfaces.py</script>
              </completionHelp>
              <valueHelp>
                <format>&lt;interface&gt;</format>
                <description>Monitor interface address</description>
              </valueHelp>
              <valueHelp>
                <format>ipv4</format>
                <description>IPv4 address to listen for incoming connections</description>
              </valueHelp>
              <valueHelp>
                <format>ipv4net</format>
                <description>IPv4 prefix to listen for incoming connections</description>
              </valueHelp>
              <valueHelp>
                <format>ipv6</format>
                <description>IPv6 address to listen for incoming connections</description>
              </valueHelp>
              <valueHelp>
                <format>ipv6net</format>
                <description>IPv6 prefix to listen for incoming connections</description>
              </valueHelp>
              <multi/>
              <constraint>
                #include <include/constraint/interface-name.xml.in>
                <validator name="ipv4-address"/>
                <validator name="ipv4-prefix"/>
                <validator name="ipv6-address"/>
                <validator name="ipv6-prefix"/>
              </constraint>
            </properties>
          </leafNode>
          <node name="stun">
            <properties>
              <help>Enable STUN probe support (can be used with NAT 1:1 support for WAN interfaces)</help>
            </properties>
            <children>
              <leafNode name="host">
                <properties>
                  <help>The STUN server address</help>
                  <valueHelp>
                    <format>txt</format>
                    <description>The STUN server host address</description>
                  </valueHelp>
                  <constraint>
                    <validator name="fqdn"/>
                  </constraint>
                </properties>
              </leafNode>
              #include <include/port-number.xml.i>
            </children>
          </node>
          <tagNode name="rule">
            <properties>
              <help>UPnP Rule</help>
              <valueHelp>
                <format>u32:0-65535</format>
                <description>Rule number</description>
              </valueHelp>
              <constraint>
                <validator name="numeric" argument="--range 0-65535"/>
              </constraint>
            </properties>
            <children>
              #include <include/generic-disable-node.xml.i>
              <leafNode name="external-port-range">
                <properties>
                  <help>Port range (REQUIRE)</help>
                  <valueHelp>
                    <format>&lt;port&gt;</format>
                    <description>single port</description>
                  </valueHelp>
                  <valueHelp>
                    <format>&lt;portN&gt;-&lt;portM&gt;</format>
                    <description>Port range (use '-' as delimiter)</description>
                  </valueHelp>
                  <constraint>
                    <validator name="port-range"/>
                  </constraint>
                </properties>
              </leafNode>
              <leafNode name="internal-port-range">
                <properties>
                  <help>Port range (REQUIRE)</help>
                  <valueHelp>
                    <format>&lt;port&gt;</format>
                    <description>single port</description>
                  </valueHelp>
                  <valueHelp>
                    <format>&lt;portN&gt;-&lt;portM&gt;</format>
                    <description>Port range (use '-' as delimiter)</description>
                  </valueHelp>
                  <constraint>
                    <validator name="port-range"/>
                  </constraint>
                </properties>
              </leafNode>
              <leafNode name="ip">
                <properties>
                  <help>The IP to which this rule applies (REQUIRE)</help>
                  <valueHelp>
                    <format>ipv4</format>
                    <description>The IPv4 address to which this rule applies</description>
                  </valueHelp>
                  <valueHelp>
                    <format>ipv4net</format>
                    <description>The IPv4 to which this rule applies</description>
                  </valueHelp>
                  <constraint>
                    <validator name="ipv4-address"/>
                    <validator name="ipv4-host"/>
                  </constraint>
                </properties>
              </leafNode>
              <leafNode name="action">
                <properties>
                  <help>Actions against the rule (REQUIRE)</help>
                  <completionHelp>
                    <list>allow deny</list>
                  </completionHelp>
                  <constraint>
                    <regex>(allow|deny)</regex>
                  </constraint>
                </properties>
              </leafNode>
            </children>
          </tagNode>
        </children>
      </node>
    </children>
  </node>
</interfaceDefinition>