Commit e35128da authored by Kevin Di Lallo's avatar Kevin Di Lallo
Browse files

added suggested dnn values for DC & edge or fog nodes

parent 01448951
Loading
Loading
Loading
Loading
+49 −0
Original line number Diff line number Diff line
@@ -597,6 +597,11 @@ func validatePhyLoc(pl *dataModel.PhysicalLocation) (err error) {
	if err != nil {
		return err
	}
	// DataNetwork
	err = validateDataNetwork(pl.DataNetwork, pl.Type_)
	if err != nil {
		return err
	}
	// GeoData
	err = validateGeoData(pl.GeoData, pl.Type_)
	if err != nil {
@@ -750,6 +755,30 @@ func validateNetChar(nc *dataModel.NetworkCharacteristics) (err error) {
	return nil
}

func validateDataNetwork(dn *dataModel.DnConfig, typ string) (err error) {
	// Optional field
	if dn == nil {
		return nil
	}
	// DNN
	err = validateDnn(dn.Dnn)
	if err != nil {
		return err
	}
	if typ == NodeTypeUE && dn.Dnn != "" {
		return errors.New("UE must not have a configured DNN")
	}
	// ECSP
	err = validateEcsp(dn.Ecsp)
	if err != nil {
		return err
	}
	if typ == NodeTypeUE && dn.Ecsp != "" {
		return errors.New("UE must not have a configured ECSP")
	}
	return nil
}

func validateGeoData(gd *dataModel.GeoData, typ string) (err error) {
	// Optional field
	if gd == nil {
@@ -1094,6 +1123,26 @@ func validateWirelessTypeList(list string) (err error) {
	return nil
}

func validateDnn(dnn string) (err error) {
	if dnn != "" {
		matched, err := regexp.MatchString(REGEX_DNN, dnn)
		if err != nil || !matched {
			return errors.New("DNN must be alphanumeric or '-' or '.'")
		}
	}
	return nil
}

func validateEcsp(ecsp string) (err error) {
	if ecsp != "" {
		matched, err := regexp.MatchString(REGEX_ECSP, ecsp)
		if err != nil || !matched {
			return errors.New("ECSP must be alphanumeric or ' '")
		}
	}
	return nil
}

func validatePath(path string, isRequired bool) (err error) {
	if path != "" {
		matched, err := regexp.MatchString(REGEX_PATH, path)
+18 −0
Original line number Diff line number Diff line
@@ -1768,6 +1768,23 @@ const getSuggestedName = ( type, elements ) => {
  return createUniqueName(elements, suggestedPrefix);
};

const getSuggestedDnn = ( type ) => {
  var suggestedDnn = '';
  switch(type) {
  case ELEMENT_TYPE_DC:
    suggestedDnn = 'internet';
    break;
  case ELEMENT_TYPE_CN:
  case ELEMENT_TYPE_EDGE:
  case ELEMENT_TYPE_FOG:
    suggestedDnn = 'edn';
    break;
  default:
    break;
  }
  return suggestedDnn;
};

const getElementTypeOverride = (type) => {
  var typeOverride = '';
  switch(type) {
@@ -1965,6 +1982,7 @@ export class CfgNetworkElementContainer extends Component {

    if (this.getConfigMode() !== CFG_ELEM_MODE_CLONE) {
      setElemFieldVal(elem, FIELD_NAME, getSuggestedName(elementTypeOverride, this.getTableEntries()));
      setElemFieldVal(elem, FIELD_DN_NAME, getSuggestedDnn(elementTypeOverride));
    }
    // this.props.cfgElemUpdate(elem);
    this.updateElement(elem);
+3 −2
Original line number Diff line number Diff line
@@ -46,7 +46,8 @@ import {
  DEFAULT_LATENCY_JITTER_APP,
  DEFAULT_THROUGHPUT_DL_APP,
  DEFAULT_THROUGHPUT_UL_APP,
  DEFAULT_PACKET_LOSS_APP
  DEFAULT_PACKET_LOSS_APP,
  DEFAULT_CONNECTIVITY_MODEL
} from '../meep-constants';

// Network Element Fields
@@ -198,7 +199,7 @@ export const createElem = name => {
  setElemFieldVal(elem, FIELD_CHART_VAL, '');
  setElemFieldVal(elem, FIELD_CHART_GROUP, '');
  setElemFieldVal(elem, FIELD_CONNECTED, true);
  setElemFieldVal(elem, FIELD_CONNECTIVITY_MODEL, '');
  setElemFieldVal(elem, FIELD_CONNECTIVITY_MODEL, DEFAULT_CONNECTIVITY_MODEL);
  setElemFieldVal(elem, FIELD_DN_NAME, '');
  setElemFieldVal(elem, FIELD_DN_ECSP, '');
  setElemFieldVal(elem, FIELD_WIRELESS, false);