Documentation ¶
Index ¶
- Constants
- Variables
- func IsDefaultNetLoc(typ string) bool
- func IsDefaultZone(typ string) bool
- func IsDeployment(typ string) bool
- func IsDomain(typ string) bool
- func IsNetLoc(typ string) bool
- func IsPhyLoc(typ string) bool
- func IsProc(typ string) bool
- func IsScenario(typ string) bool
- func IsUe(typ string) bool
- func IsZone(typ string) bool
- func JSONMarshallReplay(replay []byte) (rStr string, err error)
- func JSONMarshallReplayFileList(replayFileNameList []string) (rlStr string, err error)
- func JSONMarshallScenario(scenario []byte) (sStr string, err error)
- func JSONMarshallScenarioList(scenarioList [][]byte) (slStr string, err error)
- func ValidateScenario(jsonScenario []byte, name string) (validJsonScenario []byte, status string, err error)
- type Model
- func (m *Model) Activate() (err error)
- func (m *Model) AddScenarioNode(node *dataModel.ScenarioNode, userData interface{}) (err error)
- func (m *Model) Deactivate() (err error)
- func (m *Model) GetDeployment(filter *NodeFilter) *dataModel.Deployment
- func (m *Model) GetDomains(filter *NodeFilter) dataModel.Domains
- func (m *Model) GetEdges() (edgeMap map[string]string)
- func (m *Model) GetNetworkGraph() *dijkstra.Graph
- func (m *Model) GetNetworkLocations(filter *NodeFilter) dataModel.NetworkLocations
- func (m *Model) GetNode(name string) (node interface{})
- func (m *Model) GetNodeById(id string) (node interface{})
- func (m *Model) GetNodeChild(name string) (child interface{})
- func (m *Model) GetNodeContext(name string) (ctx *NodeContext)
- func (m *Model) GetNodeId(name string) (id string)
- func (m *Model) GetNodeNames(typ ...string) []string
- func (m *Model) GetNodeParent(name string) (parent interface{})
- func (m *Model) GetNodeType(name string) (typ string)
- func (m *Model) GetPhysicalLocations(filter *NodeFilter) dataModel.PhysicalLocations
- func (m *Model) GetProcesses(filter *NodeFilter) dataModel.Processes
- func (m *Model) GetScenario() (j []byte, err error)
- func (m *Model) GetScenarioMinimized() (j []byte, err error)
- func (m *Model) GetScenarioName() string
- func (m *Model) GetServiceMaps() *[]dataModel.NodeServiceMaps
- func (m *Model) GetZones(filter *NodeFilter) dataModel.Zones
- func (m *Model) ModifyScenarioNode(node *dataModel.ScenarioNode, userData interface{}) (err error)
- func (m *Model) MoveNode(nodeName string, destName string, userData interface{}) (oldLocName string, newLocName string, err error)
- func (m *Model) RemoveScenarioNode(node *dataModel.ScenarioNode, userData interface{}) (err error)
- func (m *Model) SetScenario(j []byte) (err error)
- func (m *Model) UpdateNetChar(nc *dataModel.EventNetworkCharacteristicsUpdate, userData interface{}) (err error)
- func (m *Model) UpdatePoasInRange(ueName string, poasInRange []string, userData interface{}) (err error)
- func (m *Model) UpdateScenario()
- type ModelCfg
- type NetworkGraph
- type Node
- type NodeContext
- type NodeFilter
- type NodeMap
Constants ¶
const ( NodeTypeScenario string = "SCENARIO" NodeTypeDeployment string = "DEPLOYMENT" NodeTypeOperator string = "OPERATOR" NodeTypeOperatorCell string = "OPERATOR-CELLULAR" NodeTypeZone string = "ZONE" NodeTypePoa string = "POA" NodeTypePoa4G string = "POA-4G" NodeTypePoa5G string = "POA-5G" NodeTypePoaWifi string = "POA-WIFI" NodeTypeUE string = "UE" NodeTypeFog string = "FOG" NodeTypeEdge string = "EDGE" NodeTypeCloud string = "DC" NodeTypeUEApp string = "UE-APP" NodeTypeEdgeApp string = "EDGE-APP" NodeTypeCloudApp string = "CLOUD-APP" )
const ( ScenarioAdd string = "ADD" ScenarioRemove string = "REMOVE" ScenarioModify string = "MODIFY" )
const ( EventMobility string = "EVENT-MOBILITY" EventNetChar string = "EVENT-NET-CHAR" EventPoaInRange string = "EVENT-POA-IN-RANGE" EventScenarioUpdate string = "EVENT-SCENARIO-UPDATE" EventAddNode string = "EVENT-ADD-NODE" EventModifyNode string = "EVENT-MODIFY-NODE" EventRemoveNode string = "EVENT-REMOVE-NODE" )
const ( ConnectivityModelOpen string = "OPEN" ConnectivityModelPdu string = "PDU" )
const ( ValidatorStatusValid = "SCENARIO-VALID" ValidatorStatusUpdated = "SCENARIO-UPDATED" ValidatorStatusError = "SCENARIO-ERROR" )
Validator status types
const ( REGEX_NAME = `^(([a-z0-9][-a-z0-9.]*)?[a-z0-9])+$` REGEX_VARIABLE_NAME = `^(([_a-z0-9A-Z][_-a-z0-9A-Z.]*)?[_a-z0-9A-Z])+$` REGEX_MAC_ADDRESS = `^(([_a-f0-9A-F][_-a-f0-9A-Z]*)?[_a-f0-9A-F])+$` REGEX_WIRELESS_TYPE_LIST = `^((,\s*)?(d2d|wifi|5g|4g|other))+$` REGEX_PATH = `[\^#%&$\*<>\?\{\|\} ]+` REGEX_DNN = `^(([a-z0-9A-Z][-a-z0-9A-Z.]*)?[a-z0-9A-Z])+$` REGEX_ECSP = `^(([a-z0-9A-Z][ a-z0-9A-Z]*)?[a-z0-9A-Z])+$` )
const ( LATENCY_MIN = 0 LATENCY_MAX = 250000 LATENCY_DISTRIBUTION_DEFAULT = "Normal" JITTER_MIN = 0 JITTER_MAX = 250000 PACKET_LOSS_MIN = float64(0.0) PACKET_LOSS_MAX = float64(100.0) THROUGHPUT_MIN = 1 THROUGHPUT_MAX = 1000000 THROUGHPUT_DEFAULT = 1000 VELOCITY_MIN = 0 VELOCITY_MAX = 1000000 RADIUS_MIN = 1 RADIUS_MAX = 1000000 D2D_RADIUS_MIN = 1 D2D_RADIUS_MAX = 10000 SERVICE_PORT_MIN = 1 SERVICE_PORT_MAX = 65535 SERVICE_NODE_PORT_MIN = 30000 SERVICE_NODE_PORT_MAX = 32767 GPU_COUNT_MIN = 1 GPU_COUNT_MAX = 4 MIN_CPU_COUNT_MIN = 0.1 MIN_CPU_COUNT_MAX = 100.0 MAX_CPU_COUNT_MIN = 0.1 MAX_CPU_COUNT_MAX = 100.0 MIN_MEMORY_MIN = 1 MIN_MEMORY_MAX = 1000000 MAX_MEMORY_MIN = 1 MAX_MEMORY_MAX = 1000000 )
const Deployment = "Deployment"
const Disconnected = "DISCONNECTED"
const Domain = "Domain"
const NetLoc = "NetLoc"
const PhyLoc = "PhyLoc"
const Proc = "Proc"
const Zone = "Zone"
Variables ¶
var CONNECTIVITY_MODEL_ENUM = []string{"OPEN", "PDU"}
var DbAddress string = "meep-redis-master.default.svc.cluster.local:6379"
var EOP_MODE_ENUM = []string{"LOOP", "REVERSE"}
var GPU_TYPE_ENUM = []string{"NVIDIA"}
var LATENCY_DIST_ENUM = []string{"Normal", "Pareto", "Paretonormal", "Uniform"}
Enums
var PROTOCOL_ENUM = []string{"UDP", "TCP"}
var ValidatorVersion = semver.Version{Major: 1, Minor: 9, Patch: 2}
Current validator version
var Version130 = semver.Version{Major: 1, Minor: 3, Patch: 0}
Versions requiring scenario update
var Version140 = semver.Version{Major: 1, Minor: 4, Patch: 0}
var Version150 = semver.Version{Major: 1, Minor: 5, Patch: 0}
var Version151 = semver.Version{Major: 1, Minor: 5, Patch: 1}
var Version153 = semver.Version{Major: 1, Minor: 5, Patch: 3}
var Version168 = semver.Version{Major: 1, Minor: 6, Patch: 8}
var Version182 = semver.Version{Major: 1, Minor: 8, Patch: 2}
Functions ¶
func IsDefaultNetLoc ¶
func IsDefaultZone ¶
func IsDeployment ¶
func IsScenario ¶
func JSONMarshallReplay ¶
JSONMarshallReplay - Convert Replay to JSON string
func JSONMarshallReplayFileList ¶
JSONMarshallReplayFileList - Convert ReplayFileList to JSON string
func JSONMarshallScenario ¶
JSONMarshallScenario - Convert ScenarioList to JSON string
func JSONMarshallScenarioList ¶
JSONMarshallScenarioList - Convert ScenarioList to JSON string
Types ¶
type Model ¶
type Model struct { Active bool // contains filtered or unexported fields }
Model - Implements a Meep Model
func (*Model) AddScenarioNode ¶
func (m *Model) AddScenarioNode(node *dataModel.ScenarioNode, userData interface{}) (err error)
AddScenarioNode - Add scenario node
func (*Model) Deactivate ¶
Deactivate - Remove the active scenario
func (*Model) GetDeployment ¶
func (m *Model) GetDeployment(filter *NodeFilter) *dataModel.Deployment
GetDeployment - Get deployment matching filter criteria
func (*Model) GetDomains ¶
func (m *Model) GetDomains(filter *NodeFilter) dataModel.Domains
GetDomains - Get domains matching filter criteria
func (*Model) GetNetworkGraph ¶
GetNetworkGraph - Get the network graph
func (*Model) GetNetworkLocations ¶
func (m *Model) GetNetworkLocations(filter *NodeFilter) dataModel.NetworkLocations
GetNetworkLocations - Get network locations matching filter criteria
func (*Model) GetNode ¶
GetNode - Get a node by its name
Returned value is of type interface{} Good practice: returned node should be type asserted with val,ok := node.(someType) to prevent panic
func (*Model) GetNodeById ¶
GetNodeById - Get a node by its id
Returned value is of type interface{} Returned node may be nil
func (*Model) GetNodeChild ¶
GetNodeChild - Get a child node by its child name
func (*Model) GetNodeContext ¶
func (m *Model) GetNodeContext(name string) (ctx *NodeContext)
GetNodeContext - Get a node context
func (*Model) GetNodeNames ¶
GetNodeNames - Get the list of nodes of a certain type; "" or "ANY" returns all
func (*Model) GetNodeParent ¶
GetNodeParent - Get a parent node by its child name
func (*Model) GetNodeType ¶
GetNodeType - Get a node by its name
func (*Model) GetPhysicalLocations ¶
func (m *Model) GetPhysicalLocations(filter *NodeFilter) dataModel.PhysicalLocations
GetPhysicalLocations - Get physical locations matching filter criteria
func (*Model) GetProcesses ¶
func (m *Model) GetProcesses(filter *NodeFilter) dataModel.Processes
GetProcesses - Get processes matching filter criteria
func (*Model) GetScenario ¶
GetScenario - Get Scenario JSON string
func (*Model) GetScenarioMinimized ¶
GetScenarioMinimized - Get Minimized Scenario JSON string
func (*Model) GetScenarioName ¶
GetScenarioName - Get the scenario name
func (*Model) GetServiceMaps ¶
func (m *Model) GetServiceMaps() *[]dataModel.NodeServiceMaps
GetServiceMaps - Extracts the model service maps
func (*Model) GetZones ¶
func (m *Model) GetZones(filter *NodeFilter) dataModel.Zones
GetZones - Get zones matching filter criteria
func (*Model) ModifyScenarioNode ¶
func (m *Model) ModifyScenarioNode(node *dataModel.ScenarioNode, userData interface{}) (err error)
ModifyScenarioNode - Modify scenario node
func (*Model) MoveNode ¶
func (m *Model) MoveNode(nodeName string, destName string, userData interface{}) (oldLocName string, newLocName string, err error)
MoveNode - Move a specific UE in the scenario
func (*Model) RemoveScenarioNode ¶
func (m *Model) RemoveScenarioNode(node *dataModel.ScenarioNode, userData interface{}) (err error)
RemoveScenarioNode - Remove scenario node
func (*Model) SetScenario ¶
SetScenario - Initialize model from JSON string
func (*Model) UpdateNetChar ¶
func (m *Model) UpdateNetChar(nc *dataModel.EventNetworkCharacteristicsUpdate, userData interface{}) (err error)
UpdateNetChar - Update network characteristics for a node
func (*Model) UpdatePoasInRange ¶
func (m *Model) UpdatePoasInRange(ueName string, poasInRange []string, userData interface{}) (err error)
UpdatePoasInRange - Update UE POA list
func (*Model) UpdateScenario ¶
func (m *Model) UpdateScenario()
type ModelCfg ¶
type ModelCfg struct { Name string Namespace string Module string DbAddr string UpdateCb func(eventType string, userData interface{}) }
ModelCfg - Model Configuration
type NetworkGraph ¶
type NetworkGraph struct {
// contains filtered or unexported fields
}
NodeContext
func NewNetworkGraph ¶
func NewNetworkGraph() (ng *NetworkGraph)
NewNodeContext - allocate an empty NodeGraph
type NodeContext ¶
NodeContext
func NewNodeContext ¶
func NewNodeContext(deployment, domain, zone, netLoc, phyLoc string) (ctx *NodeContext)
NewNodeContext - allocate a new NodeContext
func (*NodeContext) AddChild ¶
func (ctx *NodeContext) AddChild(name string, typ string)
AddChild - add a child node to context
type NodeFilter ¶
type NodeMap ¶
type NodeMap struct {
// contains filtered or unexported fields
}
NodeMap - Model node map
func (*NodeMap) FindAllByType ¶
FindAllByType - find a list of nodes using a type
func (*NodeMap) FindByName ¶
FindByName - find a node using its name