Provisioning support of 802.11r

This commit is contained in:
Mike Hansen
2020-07-28 12:38:13 -04:00
parent b66ae8e91e
commit 979ca46cea
2 changed files with 16 additions and 5 deletions

View File

@@ -1084,6 +1084,7 @@ public class OvsdbDao {
columns.add("btm"); columns.add("btm");
columns.add("enabled"); columns.add("enabled");
columns.add("ft_psk"); columns.add("ft_psk");
columns.add("ft_mobility_domain");
columns.add("group_rekey"); columns.add("group_rekey");
columns.add("if_name"); columns.add("if_name");
columns.add("min_hw_mode"); columns.add("min_hw_mode");
@@ -1139,6 +1140,11 @@ public class OvsdbDao {
if (ftPsk != null) { if (ftPsk != null) {
wifiVifConfigInfo.ftPsk = ftPsk.intValue(); wifiVifConfigInfo.ftPsk = ftPsk.intValue();
} }
Long ftMobilityDomain = getSingleValueFromSet(row, "ft_mobility_domain");
if (ftMobilityDomain != null) {
wifiVifConfigInfo.ftMobilityDomain = ftMobilityDomain.intValue();
}
Long groupRekey = getSingleValueFromSet(row, "group_rekey"); Long groupRekey = getSingleValueFromSet(row, "group_rekey");
if (groupRekey != null) { if (groupRekey != null) {
@@ -2214,7 +2220,7 @@ public class OvsdbDao {
} }
public void configureSingleSsid(OvsdbClient ovsdbClient, String ifName, String ssid, boolean ssidBroadcast, public void configureSingleSsid(OvsdbClient ovsdbClient, String ifName, String ssid, boolean ssidBroadcast,
Map<String, String> security, String radioFreqBand, int vlanId, boolean rrmEnabled, boolean enable80211r, Map<String, String> security, String radioFreqBand, int vlanId, boolean rrmEnabled, boolean enable80211r, int mobilityDomain,
boolean enable80211v, String minHwMode, boolean enabled, int keyRefresh, boolean uapsdEnabled, boolean enable80211v, String minHwMode, boolean enabled, int keyRefresh, boolean uapsdEnabled,
boolean apBridge, NetworkForwardMode networkForwardMode, String gateway, String inet, boolean apBridge, NetworkForwardMode networkForwardMode, String gateway, String inet,
Map<String, String> dns, String ipAssignScheme, List<MacAddress> macBlockList) { Map<String, String> dns, String ipAssignScheme, List<MacAddress> macBlockList) {
@@ -2238,7 +2244,7 @@ public class OvsdbDao {
updateColumns.put("enabled", new Atom<>(enabled)); updateColumns.put("enabled", new Atom<>(enabled));
if (enable80211r) { if (enable80211r) {
updateColumns.put("ft_psk", new Atom<>(1)); updateColumns.put("ft_psk", new Atom<>(1));
updateColumns.put("ft_mobility_domain", new Atom<>(17911)); updateColumns.put("ft_mobility_domain", new Atom<>(mobilityDomain));
} else { } else {
updateColumns.put("ft_psk", new Atom<>(0)); updateColumns.put("ft_psk", new Atom<>(0));
updateColumns.put("ft_mobility_domain", new com.vmware.ovsdb.protocol.operation.notation.Set()); updateColumns.put("ft_mobility_domain", new com.vmware.ovsdb.protocol.operation.notation.Set());
@@ -2533,6 +2539,7 @@ public class OvsdbDao {
boolean apBridge = radioConfiguration.getStationIsolation() == StateSetting.enabled; // stationIsolation boolean apBridge = radioConfiguration.getStationIsolation() == StateSetting.enabled; // stationIsolation
// off by default // off by default
boolean enable80211r = false; boolean enable80211r = false;
int mobilityDomain = 0;
// on by default // on by default
boolean enable80211v = true; boolean enable80211v = true;
@@ -2541,6 +2548,9 @@ public class OvsdbDao {
&& (ssidConfig.getRadioBasedConfigs().get(radioType) != null)) { && (ssidConfig.getRadioBasedConfigs().get(radioType) != null)) {
if (ssidConfig.getRadioBasedConfigs().get(radioType).getEnable80211r() != null) { if (ssidConfig.getRadioBasedConfigs().get(radioType).getEnable80211r() != null) {
enable80211r = ssidConfig.getRadioBasedConfigs().get(radioType).getEnable80211r(); enable80211r = ssidConfig.getRadioBasedConfigs().get(radioType).getEnable80211r();
if (enable80211r) {
mobilityDomain = opensyncApConfig.getCustomerEquipment().getCustomerId(); // for uniqueness, mobility domain is per customer
}
} }
if (ssidConfig.getRadioBasedConfigs().get(radioType).getEnable80211v() != null) { if (ssidConfig.getRadioBasedConfigs().get(radioType).getEnable80211v() != null) {
enable80211v = ssidConfig.getRadioBasedConfigs().get(radioType).getEnable80211v(); enable80211v = ssidConfig.getRadioBasedConfigs().get(radioType).getEnable80211v();
@@ -2617,7 +2627,7 @@ public class OvsdbDao {
} }
configureSingleSsid(ovsdbClient, ifName, ssidConfig.getSsid(), ssidBroadcast, security, freqBand, configureSingleSsid(ovsdbClient, ifName, ssidConfig.getSsid(), ssidBroadcast, security, freqBand,
ssidConfig.getVlanId(), rrmEnabled, enable80211r, enable80211v, minHwMode, enabled, ssidConfig.getVlanId(), rrmEnabled, enable80211r, mobilityDomain, enable80211v, minHwMode, enabled,
keyRefresh, uapsdEnabled, apBridge, ssidConfig.getForwardMode(), gateway, inet, dns, keyRefresh, uapsdEnabled, apBridge, ssidConfig.getForwardMode(), gateway, inet, dns,
ipAssignScheme, macBlockList); ipAssignScheme, macBlockList);

View File

@@ -28,6 +28,7 @@ public class WifiVifConfigInfo implements Cloneable{
public String minHwMode; public String minHwMode;
public Set<String> macList; public Set<String> macList;
public String macListType; public String macListType;
public int ftMobilityDomain;
@Override @Override
public WifiVifConfigInfo clone() { public WifiVifConfigInfo clone() {
@@ -46,8 +47,8 @@ public class WifiVifConfigInfo implements Cloneable{
@Override @Override
public String toString() { public String toString() {
return String.format( return String.format(
"WifiVifConfigInfo [bridge=%s, ap_bridge=%s, btm=%s, enabled=%s, ftPsk=%s, groupRekey=%s, ifName=%s, minHwMode=%s, mode=%s, rrm=%s, ssid=%s, ssidBroadcast=%s, uapsdEnable=%s, vifRadioIdx=%s, security=%s, uuid=%s, vlanId=%s, macList=%s, macListType=%s]", "WifiVifConfigInfo [bridge=%s, ap_bridge=%s, btm=%s, enabled=%s, ftPsk=%s, ftMobilityDomain=%s, groupRekey=%s, ifName=%s, minHwMode=%s, mode=%s, rrm=%s, ssid=%s, ssidBroadcast=%s, uapsdEnable=%s, vifRadioIdx=%s, security=%s, uuid=%s, vlanId=%s, macList=%s, macListType=%s]",
bridge, apBridge, btm, enabled, ftPsk, groupRekey, ifName, minHwMode, mode, rrm, ssid, ssidBroadcast, uapsdEnable, bridge, apBridge, btm, enabled, ftPsk, ftMobilityDomain, groupRekey, ifName, minHwMode, mode, rrm, ssid, ssidBroadcast, uapsdEnable,
vifRadioIdx, security, uuid, vlanId, macList, macListType); vifRadioIdx, security, uuid, vlanId, macList, macListType);
} }