mirror of
https://github.com/Telecominfraproject/wlan-docs.git
synced 2025-11-01 19:27:48 +00:00
GitBook: [#22] No subject
This commit is contained in:
@@ -64,23 +64,20 @@
|
||||
* [Mesh](device-feature-configuration-examples/device-feature-configuration-examples/mesh.md)
|
||||
* [QoS](device-feature-configuration-examples/device-feature-configuration-examples/qos.md)
|
||||
* [Dynamic Air Time Fairness](device-feature-configuration-examples/device-feature-configuration-examples/dynamic-air-time-fairness.md)
|
||||
* [Dynamic Subscriber QoS](device-feature-configuration-examples/device-feature-configuration-examples/dynamic-subscriber-qos.md)
|
||||
* [Captive Portal](device-feature-configuration-examples/device-feature-configuration-examples/captive-portal/README.md)
|
||||
* [External Captive Portal](device-feature-configuration-examples/device-feature-configuration-examples/captive-portal/external-captive-portal.md)
|
||||
* [ExpressWiFi](device-feature-configuration-examples/device-feature-configuration-examples/expresswifi.md)
|
||||
* [Roaming RRM and SON](device-feature-configuration-examples/device-feature-configuration-examples/roaming-rrm-and-son.md)
|
||||
* [RADIUS Authenticated SSID](device-feature-configuration-examples/device-feature-configuration-examples/radius-authenticated-ssid/README.md)
|
||||
* [Dynamic VLANs with RADIUS](device-feature-configuration-examples/device-feature-configuration-examples/radius-authenticated-ssid/dynamic-vlans-with-radius.md)
|
||||
* [WISPr Subscriber Bandwidth](device-feature-configuration-examples/device-feature-configuration-examples/radius-authenticated-ssid/wispr-subscriber-bandwidth.md)
|
||||
* [RADIUS MAC-Auth](device-feature-configuration-examples/device-feature-configuration-examples/radius-authenticated-ssid/radius-mac-auth.md)
|
||||
* [Multi-PSK (MDU Shared Key)](device-feature-configuration-examples/device-feature-configuration-examples/multi-psk-mdu-multiple-shared-key.md)
|
||||
* [Wireguard](device-feature-configuration-examples/device-feature-configuration-examples/wireguard.md)
|
||||
* [Dynamic Air-Time Policy](device-feature-configuration-examples/device-feature-configuration-examples/dynamic-air-time-policy.md)
|
||||
* [Passpoint®](device-feature-configuration-examples/device-feature-configuration-examples/passpoint-r1/README.md)
|
||||
* [Configuration Introduction](device-feature-configuration-examples/device-feature-configuration-examples/passpoint-r1/configuration-introduction.md)
|
||||
* [Advertising Services](device-feature-configuration-examples/device-feature-configuration-examples/passpoint-r1/advertising-services.md)
|
||||
* [Passpoint® Configuration](device-feature-configuration-examples/device-feature-configuration-examples/passpoint-r1/passpoint-r-configuration.md)
|
||||
* [Switching](device-feature-configuration-examples/device-feature-configuration-examples/switching/README.md)
|
||||
* [Port Speed](device-feature-configuration-examples/device-feature-configuration-examples/switching/port-speed.md)
|
||||
|
||||
## RELEASE
|
||||
|
||||
|
||||
@@ -4,6 +4,14 @@ description: TIP OpenWiFi 2.0
|
||||
|
||||
# Device Feature Configuration Examples
|
||||
|
||||
OpenWiFi devices have a number of features that may be configured.
|
||||
OpenWiFi device features are configurable through understanding the uCentral device data model.
|
||||
|
||||
For integrators of commercial controllers, these feature examples may help guide development of device provisioning within a partner controller products.
|
||||
|
||||
Experimentation with device features often occurs initially through static configuration as JSON document sent to a device using the OpenWiFi Gateway. 
|
||||
|
||||
Commercial products with OpenWiFi device provisioning will be using the northbound API to create, update, delete per device configurations. These APIs are then inter-worked southbound via the OpenWiFi Gateway to devices. 
|
||||
|
||||
Some of the available device features are exposed in this same manner using the OpenWiFi Provisioning service. This provisioning service offers an additional way for commercial partners to consume OpenWiFi and integrate a controller or back office environment that may require device provisioning when that functionality is not present as part of a controller or other commercial product.  
|
||||
|
||||
The following pages guide the user to understanding each of these features individually including example configuration information.
|
||||
|
||||
@@ -15,7 +15,7 @@ Traffic handling building blocks over time have layered onto Wi-Fi to handle con
|
||||
OpenWiFi WMM Supports the following class selector profiles:
|
||||
|
||||
* Enterprise
|
||||
* RFC8325
|
||||
* RFC8325 - default
|
||||
* 3GPP
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
description: TIP OpenWiFi 2.0
|
||||
---
|
||||
|
||||
# Dynamic Subscriber QoS
|
||||
|
||||
@@ -1,91 +0,0 @@
|
||||
---
|
||||
description: OpenWiFi 2.1
|
||||
---
|
||||
|
||||
# ExpressWiFi
|
||||
|
||||
At home, in a cafe, or on the go, Express Wi-Fi gives you access to fast, affordable, and reliable internet so you can make connections that matter.
|
||||
|
||||
Express Wi-Fi partners with service providers to deliver great wi-fi to people when and where it's needed.
|
||||
|
||||
For information about becoming an expressWIFI partner please visit their [site.](https://expresswifi.fb.com)
|
||||
|
||||
 (1).png>)
|
||||
|
||||
## Configuration
|
||||
|
||||
ExpressWiFi builds a captive portal experience using a control plane protocol called OpenFlow. Configuring OpenWiFi for use with expressWiFi is as simple as defining a downstream interface and associating with an SSID and the open-flow service.
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="expressWIFI" %}
|
||||
```
|
||||
"interfaces": [
|
||||
{
|
||||
"name": "WAN",
|
||||
"role": "upstream",
|
||||
"services": [ "lldp" ],
|
||||
"ethernet": [
|
||||
{
|
||||
"select-ports": [
|
||||
"WAN*"
|
||||
]
|
||||
}
|
||||
],
|
||||
"ipv4": {
|
||||
"addressing": "dynamic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "LAN",
|
||||
"role": "downstream",
|
||||
"services": [ "ssh", "lldp", "open-flow"],
|
||||
"ethernet": [
|
||||
{
|
||||
"select-ports": [
|
||||
"LAN*"
|
||||
]
|
||||
}
|
||||
],
|
||||
"ipv4": {
|
||||
"addressing": "static",
|
||||
"subnet": "192.168.1.1/24",
|
||||
"dhcp": {
|
||||
"lease-first": 10,
|
||||
"lease-count": 100,
|
||||
"lease-time": "6h"
|
||||
}
|
||||
},
|
||||
"ssids": [
|
||||
{
|
||||
"name": "ExpressWiFi",
|
||||
"wifi-bands": [
|
||||
"5G", "2G"
|
||||
],
|
||||
"bss-mode": "ap"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"lldp": {
|
||||
"describe": "OpenWiFi - expressWiFi",
|
||||
"location": "Hotspot"
|
||||
},
|
||||
"ssh": {
|
||||
"port": 22
|
||||
},
|
||||
"open-flow": {
|
||||
"controller": " IP / FQDN of expressWiFi Controller ",
|
||||
"mode": "specific mode pssl, ptcp, ssl, tcp"
|
||||
"ca-certificate": " the client cert as Base64 here ",
|
||||
"ssl-certificate": "the shared ca as Base64 here",
|
||||
"private-key": "client key as Base64 here"
|
||||
}
|
||||
}
|
||||
```
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
{% hint style="info" %}
|
||||
Contact expressWiFi for appropriate CA, Client Cert, and Key for TLS Security mode in addition to the specific expressWiFi Controller FQDN. Ensure these values are Base64 encoded when passed into the configuration
|
||||
{% endhint %}
|
||||
@@ -32,7 +32,7 @@ TIP OpenWiFi enumerates defined QoS provisioning, as applications or port and pr
|
||||
OpenWiFi WMM Supports the following class selector profiles:
|
||||
|
||||
* Enterprise
|
||||
* RFC8325
|
||||
* RFC8325 - default
|
||||
* 3GPP
|
||||
|
||||
|
||||
|
||||
@@ -1,306 +0,0 @@
|
||||
---
|
||||
description: TIP OpenWiFi 2.0
|
||||
---
|
||||
|
||||
# Switching
|
||||
|
||||
{% hint style="info" %}
|
||||
Switching Features Remain Under Test
|
||||
{% endhint %}
|
||||
|
||||
TIP OpenWiFi use of the OpenWrt operating system combined with new virtual data plane present in all images for 2.0 major release and the uCentral data model make it possible to include PoE access switching as a cloud managed component of the OpenWiFi stack.
|
||||
|
||||
Nightly builds include supported switch platforms.
|
||||
|
||||
Currently the list of features for switching include:
|
||||
|
||||
* IEEE 802.1Q VLAN
|
||||
* Port based Untagged
|
||||
* Tagged trunk
|
||||
* IEEE 802.1ad Q-inQ
|
||||
* VxLAN
|
||||
* PoE Auto Power
|
||||
* Port Mirroring / Monitor
|
||||
* Link Aggregation
|
||||
* Link Layer Discovery Protocol
|
||||
* Port Speed Control
|
||||
|
||||
### Configuring a Switch
|
||||
|
||||
All ports needs to be specified for link negotiation to occur. In the below example, the "ethernet" section defines the physical port. The "interfaces" configuration will cause the physical port to negotiate. Effectively removal of a "select-ports" for a physical port in any or all "interfaces" is the equivalent of an interface in shutdown state.
|
||||
|
||||
```
|
||||
"ethernet": [
|
||||
{
|
||||
"select-ports": [
|
||||
"WAN1"
|
||||
],
|
||||
"speed": 1000,
|
||||
"duplex": "full"
|
||||
},
|
||||
{
|
||||
"select-ports": [
|
||||
"WAN2"
|
||||
],
|
||||
"speed": 1000,
|
||||
"duplex": "full"
|
||||
},
|
||||
{
|
||||
"select-ports": [
|
||||
"WAN3"
|
||||
],
|
||||
"speed": 1000,
|
||||
"duplex": "full"
|
||||
},
|
||||
{
|
||||
"select-ports": [
|
||||
"WAN4"
|
||||
],
|
||||
"speed": 1000,
|
||||
"duplex": "full"
|
||||
},
|
||||
{
|
||||
"select-ports": [
|
||||
"WAN5"
|
||||
],
|
||||
"speed": 1000,
|
||||
"duplex": "full"
|
||||
},
|
||||
{
|
||||
"select-ports": [
|
||||
"WAN6"
|
||||
],
|
||||
"speed": 1000,
|
||||
"duplex": "full"
|
||||
},
|
||||
{
|
||||
"select-ports": [
|
||||
"WAN7"
|
||||
],
|
||||
"speed": 1000,
|
||||
"duplex": "full",
|
||||
"vlan-tag": "auto"
|
||||
},
|
||||
{
|
||||
"select-ports": [
|
||||
"WAN8"
|
||||
],
|
||||
"speed": 1000,
|
||||
"duplex": "full",
|
||||
"vlan-tag": "auto"
|
||||
},
|
||||
{
|
||||
"select-ports": [
|
||||
"WAN9"
|
||||
],
|
||||
"speed": 1000,
|
||||
"duplex": "full"
|
||||
},
|
||||
{
|
||||
"select-ports": [
|
||||
"WAN10"
|
||||
],
|
||||
"speed": 1000,
|
||||
"duplex": "full"
|
||||
},
|
||||
{
|
||||
"select-ports": [
|
||||
"WAN11"
|
||||
],
|
||||
"speed": 1000,
|
||||
"duplex": "full"
|
||||
},
|
||||
{
|
||||
"select-ports": [
|
||||
"WAN12"
|
||||
],
|
||||
"speed": 1000,
|
||||
"duplex": "full"
|
||||
}
|
||||
],
|
||||
```
|
||||
|
||||
Without any "interfaces" defined, the ifconfig on the switch will return eth0, lan1, lo as an output. When adding "interfaces" additional ports become active and also visible.
|
||||
|
||||
```
|
||||
"interfaces": [
|
||||
{
|
||||
{
|
||||
"name": "VLAN-30-Ports",
|
||||
"role": "downstream",
|
||||
"services": [ "lldp" ],
|
||||
"vlan": {
|
||||
"id": 30,
|
||||
"proto": "802.1q"
|
||||
},
|
||||
"ethernet": [
|
||||
{
|
||||
"select-ports": [
|
||||
"WAN7", "WAN8"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Vlan-Id 30 has been assigned to interfaces 7 and 8 on the switch. Traffic is isolated among participating ports.
|
||||
|
||||
#### Ifconfig output example
|
||||
|
||||
```
|
||||
# ifconfig
|
||||
down1v30 Link encap:Ethernet HWaddr 90:3C:B3:39:C0:C1
|
||||
inet6 addr: fe80::923c:b3ff:fe39:c0c1/64 Scope:Link
|
||||
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
|
||||
RX packets:79 errors:0 dropped:0 overruns:0 frame:0
|
||||
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
|
||||
collisions:0 txqueuelen:1000
|
||||
RX bytes:22135 (21.6 KiB) TX bytes:1036 (1.0 KiB)
|
||||
|
||||
eth0 Link encap:Ethernet HWaddr 90:3C:B3:39:C0:C0
|
||||
inet6 addr: fe80::923c:b3ff:fe39:c0c0/64 Scope:Link
|
||||
UP BROADCAST RUNNING MULTICAST MTU:1504 Metric:1
|
||||
RX packets:31617 errors:0 dropped:0 overruns:0 frame:0
|
||||
TX packets:7479 errors:0 dropped:0 overruns:0 carrier:0
|
||||
collisions:0 txqueuelen:1000
|
||||
RX bytes:4293282 (4.0 MiB) TX bytes:1228185 (1.1 MiB)
|
||||
Interrupt:24 Memory:c000000-bb00a3ff
|
||||
|
||||
lan1 Link encap:Ethernet HWaddr 90:3C:B3:39:C0:C1
|
||||
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
|
||||
RX packets:27321 errors:0 dropped:69 overruns:0 frame:0
|
||||
TX packets:5445 errors:0 dropped:0 overruns:0 carrier:0
|
||||
collisions:0 txqueuelen:1000
|
||||
RX bytes:2893034 (2.7 MiB) TX bytes:825702 (806.3 KiB)
|
||||
|
||||
lan7 Link encap:Ethernet HWaddr 90:3C:B3:39:C0:C7
|
||||
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
|
||||
RX packets:2204 errors:0 dropped:0 overruns:0 frame:0
|
||||
TX packets:507 errors:0 dropped:0 overruns:0 carrier:0
|
||||
collisions:0 txqueuelen:1000
|
||||
RX bytes:421385 (411.5 KiB) TX bytes:100251 (97.9 KiB)
|
||||
|
||||
lan8 Link encap:Ethernet HWaddr 90:3C:B3:39:C0:C8
|
||||
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
|
||||
RX packets:1241 errors:0 dropped:0 overruns:0 frame:0
|
||||
TX packets:496 errors:0 dropped:0 overruns:0 carrier:0
|
||||
collisions:0 txqueuelen:1000
|
||||
RX bytes:220496 (215.3 KiB) TX bytes:98164 (95.8 KiB)
|
||||
|
||||
lo Link encap:Local Loopback
|
||||
inet addr:127.0.0.1 Mask:255.0.0.0
|
||||
inet6 addr: ::1/128 Scope:Host
|
||||
UP LOOPBACK RUNNING MTU:65536 Metric:1
|
||||
RX packets:958 errors:0 dropped:0 overruns:0 frame:0
|
||||
TX packets:958 errors:0 dropped:0 overruns:0 carrier:0
|
||||
collisions:0 txqueuelen:1000
|
||||
RX bytes:76410 (74.6 KiB) TX bytes:76410 (74.6 KiB)
|
||||
|
||||
up Link encap:Ethernet HWaddr 90:3C:B3:39:C0:C1
|
||||
inet6 addr: fe80::923c:b3ff:fe39:c0c1/64 Scope:Link
|
||||
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
|
||||
RX packets:27027 errors:0 dropped:0 overruns:0 frame:0
|
||||
TX packets:4368 errors:0 dropped:0 overruns:0 carrier:0
|
||||
collisions:0 txqueuelen:1000
|
||||
RX bytes:3008700 (2.8 MiB) TX bytes:587431 (573.6 KiB)
|
||||
|
||||
up0v0 Link encap:Ethernet HWaddr 90:3C:B3:39:C0:C1
|
||||
inet addr:10.75.0.154 Bcast:10.75.0.255 Mask:255.255.255.0
|
||||
inet6 addr: fe80::923c:b3ff:fe39:c0c1/64 Scope:Link
|
||||
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
|
||||
RX packets:22673 errors:0 dropped:0 overruns:0 frame:0
|
||||
TX packets:3865 errors:0 dropped:0 overruns:0 carrier:0
|
||||
collisions:0 txqueuelen:1000
|
||||
RX bytes:2390361 (2.2 MiB) TX bytes:525377 (513.0 KiB)
|
||||
```
|
||||
|
||||
#### Bridge Vlan Table Output
|
||||
|
||||
```
|
||||
# bridge vlan
|
||||
port vlan-id
|
||||
lan1 4090 PVID Egress Untagged
|
||||
lan7 30 PVID Egress Untagged
|
||||
lan8 30 PVID Egress Untagged
|
||||
up 30
|
||||
4090
|
||||
#
|
||||
```
|
||||
|
||||
### Assigning VLANs to Ports
|
||||
|
||||
To define additional VLAN memberships to any port, create additional "interfaces" configuration.
|
||||
|
||||
```
|
||||
{
|
||||
"name": "VLAN-30-Ports",
|
||||
"role": "upstream",
|
||||
"services": [ "lldp" ],
|
||||
"vlan": {
|
||||
"id": 30,
|
||||
"proto": "802.1q"
|
||||
},
|
||||
"ethernet": [
|
||||
{
|
||||
"select-ports": [
|
||||
"WAN7", "WAN8"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "VLAN-40-Ports",
|
||||
"role": "upstream",
|
||||
"services": [ "lldp" ],
|
||||
"vlan": {
|
||||
"id": 40,
|
||||
"proto": "802.1q"
|
||||
},
|
||||
"ethernet": [
|
||||
{
|
||||
"select-ports": [
|
||||
"WAN7", "WAN8"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
#### Ifconfig and Bridge Results
|
||||
|
||||
```
|
||||
up1v30 Link encap:Ethernet HWaddr 90:3C:B3:39:C0:C1
|
||||
inet6 addr: fe80::923c:b3ff:fe39:c0c1/64 Scope:Link
|
||||
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
|
||||
RX packets:1178 errors:0 dropped:0 overruns:0 frame:0
|
||||
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
|
||||
collisions:0 txqueuelen:1000
|
||||
RX bytes:245923 (240.1 KiB) TX bytes:816 (816.0 B)
|
||||
|
||||
up2v40 Link encap:Ethernet HWaddr 90:3C:B3:39:C0:C1
|
||||
inet6 addr: fe80::923c:b3ff:fe39:c0c1/64 Scope:Link
|
||||
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
|
||||
RX packets:106 errors:0 dropped:0 overruns:0 frame:0
|
||||
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
|
||||
collisions:0 txqueuelen:1000
|
||||
RX bytes:34638 (33.8 KiB) TX bytes:816 (816.0 B)
|
||||
|
||||
|
||||
# bridge vlan
|
||||
port vlan-id
|
||||
lan1 4090 PVID Egress Untagged
|
||||
lan7 30
|
||||
40
|
||||
lan8 30
|
||||
40
|
||||
up 30
|
||||
40
|
||||
4090
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
---
|
||||
description: OpenWiFi 2.1
|
||||
---
|
||||
|
||||
# Port Speed
|
||||
|
||||
Configuring port speed and operation is most commonly done with PoE access switches however the same configurations are possible for all OpenWiFi device types.
|
||||
|
||||
By default all ports attempt 1,000 Mb/s full duplex operation.
|
||||
|
||||
```
|
||||
"ethernet": [
|
||||
{
|
||||
"select-ports": [
|
||||
"WAN1"
|
||||
],
|
||||
"speed": 100,
|
||||
"duplex": "half"
|
||||
},
|
||||
{
|
||||
"select-ports": [
|
||||
"WAN2"
|
||||
],
|
||||
"speed": 1000,
|
||||
"duplex": "full"
|
||||
},
|
||||
{
|
||||
"select-ports": [
|
||||
"WAN3"
|
||||
],
|
||||
"speed": 100,
|
||||
"duplex": "half"
|
||||
}
|
||||
],
|
||||
```
|
||||
@@ -0,0 +1,55 @@
|
||||
---
|
||||
description: Early Preview Feature
|
||||
---
|
||||
|
||||
# Wireguard
|
||||
|
||||
Wireguard is an overlay technology supporting both Layer 2 and Layer 3 operations. In TIP OpenWiFi this is designed as a configured service that is associated to any logical interface. 
|
||||
|
||||
As a fully encrypted overlay, key negotiation and exchange of peers is required. This peer endpoint exchange conversation is known as PEX. 
|
||||
|
||||
A PEX service is deployed with public network visibility and defined in the wireguard-overlay root-node configuration section of the client.
|
||||
|
||||
Endpoints to be key negotiated with are defined as hosts. 
|
||||
|
||||
When this wireguard-overlay is then associated as a service to a layer 3 interface either upstream (WAN) or downstream (LAN) then a layer 3 path is available between the define host endpoints. 
|
||||
|
||||
When the wireguard-overlay is associated as a service with vxlan configured, the host adjacencies become layer 2 paths. 
|
||||
|
||||
|
||||
|
||||
**Example:**
|
||||
|
||||
```
|
||||
“wireguard-overlay”: {
|
||||
“private-key”: “####AAAABBBBCCCDDDDEEEFFFFFGGGG“,
|
||||
“root-node”: {
|
||||
“key”: “ZZZZWWWWQQQEEERRRTTYYYY“,
|
||||
“endpoint”: “148.251.188.218",
|
||||
“ipaddr”: [ “192.168.3.1" ]
|
||||
},
|
||||
“hosts”: [
|
||||
{
|
||||
“name”: “ap1”,
|
||||
“key”: “CCCCDDDDEEEEFFFFGGGHHHHIIII“,
|
||||
“ipaddr”: [ “192.168.4.1" ]
|
||||
}, {
|
||||
“name”: “ap2",
|
||||
“key”: “JJJKKKLLLAAABBBBBNCCCC####“,
|
||||
“ipaddr”: [ “192.168.5.1" ]
|
||||
}
|
||||
],
|
||||
“vxlan”: {
|
||||
“isolate”: false
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
####  Peer Endpoint eXchange Service (PEX)
|
||||
|
||||
Currently TIP OpenWiFi wireguard services are an early preview feature. The PEX network discovery daemon service is intended to be containerized and likely re-written as a core service of the TIP OpenWiFi SDK cloud. 
|
||||
|
||||
For development members in the Community who wish to begin with this feature, the following repo should be consulted for functional information on a base Linux deployment of PEX via: [https://github.com/nbd168/unetd/blob/master/PEX.md](https://github.com/nbd168/unetd/blob/master/PEX.md) 
|
||||
|
||||
Please connect with the Community maintainers via Slack if working on this early access feature. 
|
||||
|
||||
Reference in New Issue
Block a user