blob: 5abdf6fe47c1caecb6c3bd2292a04aef76b40bbe [file] [log] [blame]
option name = "volt";
option app_label = "volt";
message VOLTService (Service){
option verbose_name = "vOLT Service";
option kind = "vOLT";
option description = "OLT Access Service";
option custom_python = "True";
required string voltha_url = 1 [
help_text = "The Voltha API address. By default voltha.voltha.svc.cluster.local",
default = "voltha.voltha.svc.cluster.local",
max_length = 256];
required int32 voltha_port = 2 [
help_text = "The Voltha API port. By default 8882",
default = 8882];
required string voltha_user = 3 [
help_text = "The Voltha username. By default voltha",
default = "voltha",
max_length = 256];
required string voltha_pass = 4 [
help_text = "The Voltha password. By default admin",
default = "admin",
max_length = 256];
}
message OLTDevice (XOSBase){
option verbose_name = "OLT Device";
option description="Represents a physical OLT device";
option custom_python = "True";
option sync_implemented = "True";
required manytoone volt_service->VOLTService:volt_devices = 1:1001 [
help_text = "VOLTService that owns this OLT",
db_index = True];
optional string name = 2 [
help_text = "Human-readable name of device",
max_length = 256,
unique = True];
required string device_type = 3 [
help_text = "Phyiscal Device Type",
default = "openolt",
max_length = 256];
optional string host = 4 [
help_text = "IP Address of physical OLT Device",
max_length = 256];
optional int32 port = 5 [
help_text = "Port Number of physical OLT Device",
unique_with = "host"];
optional string mac_address = 6 [
help_text = "MAC address of physical OLT Device",
max_length = 17];
optional string serial_number = 9 [
help_text = "Serial Number",
max_length = 256];
optional string device_id = 10 [
help_text = "Voltha Device ID",
feedback_state = True,
max_length = 256];
optional string admin_state = 11 [
help_text = "admin state, whether OLT should be enabled",
choices = "(('DISABLED', 'DISABLED'), ('ENABLED', 'ENABLED'))",
default = "ENABLED",
max_length = 32];
optional string oper_status = 12 [
help_text = "operational status, whether OLT is active",
feedback_state = True,
max_length = 256];
optional string link_status = 21 [
help_text = "connectivity status, whether OLT has connectivity to agg switch",
choices = "(('up', 'up'), ('down', 'down'))",
feedback_state = True,
max_length = 32];
optional string of_id = 13 [
help_text = "Logical device openflow id",
feedback_state = True,
max_length = 256];
optional string dp_id = 14 [
help_text = "Logical device datapath id",
max_length = 256];
required string uplink = 15 [
help_text = "uplink port, exposed via sadis",
max_length = 256];
required string driver = 16 [
help_text = "DEPRECATED",
default = "voltha",
max_length = 32]; // Used to be sent to ONOS, now unused.
optional string switch_datapath_id = 17 [
help_text = "Fabric switch to which the OLT is connected",
max_length = 256];
optional string switch_port = 18 [
help_text = "Fabric port to which the OLT is connected",
max_length = 256];
optional string outer_tpid = 19 [
help_text = "Outer VLAN id field EtherType",
max_length = 256];
optional string nas_id = 20 [
help_text = "Authentication ID (propagated to the free-radius server via sadis)",
max_length = 256];
}
message PortBase (XOSBase){
option gui_hidden = True;
option description = "Base class for Port objects";
required string name = 1 [
help_text = "Human-readable name of port",
db_index = True,
max_length = 256];
required int32 port_no = 3 [
help_text = "Port Number"];
optional string admin_state = 4 [
help_text = "admin state, whether port should be enabled",
// TODO: Should specify "choices"
feedback_state = True,
max_length = 32];
optional string oper_status = 5 [
help_text = "operational status, whether port is active",
// TODO: Should specify "choices"
feedback_state = True,
max_length = 32];
}
message PONPort (PortBase){
option verbose_name = "PON Port";
option description = "PON Port";
required manytoone olt_device->OLTDevice:pon_ports = 1:1001 [
help_text = "OLTDevice that owns this PONPort",
db_index = True];
}
message NNIPort (PortBase) {
option verbose_name = "NNI Port";
option description = "NNI Port";
required manytoone olt_device->OLTDevice:nni_ports = 1:1002 [
help_text = "OLTDevice that owns this NNIPort",
db_index = True];
}
message ONUDevice (XOSBase){
option verbose_name = "ONU Device";
option description = "Represents a physical ONU device";
option custom_python = "True";
option sync_implemented = "True";
required manytoone pon_port->PONPort:onu_devices = 1:1001 [
help_text = "PONPort that connects this ONUDevice to an OLTDevice",
db_index = True];
required string serial_number = 2 [
help_text = "Serial number of ONU Device",
max_length = 256,
tosca_key=True,
unique = True];
required string vendor = 3 [
help_text = "Vendor of ONU Device",
max_length = 256];
required string device_type = 4 [
help_text = "Device Type",
default = "asfvolt16_olt",
max_length = 256];
optional string device_id = 5 [
help_text = "Voltha Device ID",
feedback_state = True,
max_length = 256];
optional string admin_state = 6 [
help_text = "admin state, whether port should be enabled",
choices = "(('DISABLED', 'DISABLED'), ('ENABLED', 'ENABLED'), ('ADMIN_DISABLED', 'ADMIN_DISABLED'))",
default = "ENABLED",
max_length = 32];
optional string oper_status = 7 [
help_text = "oper_status",
// TODO: Should add "choices"
feedback_state = True,
max_length = 32];
optional string connect_status = 8 [
help_text = "operational status, whether port is active",
feedback_state = True,
max_length = 32];
optional string reason = 9 [
help_text = "ONU device configuration state machine status message",
feedback_state = True,
text = True];
}
message ANIPort (PortBase) {
option verbose_name = "ANI Port";
option description="Access Node Interface Port";
required manytoone onu_device->ONUDevice:ani_ports = 1:1001 [
help_text = "ONUDevice that owns this ANIPort",
db_index = True];
}
message UNIPort (PortBase) {
option verbose_name = "UNI Port";
option description = "User Network Interface Port";
required manytoone onu_device->ONUDevice:uni_ports = 1:1002 [
help_text = "ONUDevice that owns this UNIPort",
db_index = True];
}
message VOLTServiceInstance (ServiceInstance){
option kind = "vOLT";
option owner_class_name = "VOLTService";
option verbose_name = "vOLT Service Instance";
option description = "Represents subscriber tenancy in the VOLT Service";
option policy_implemented = "True";
option sync_implemented = "True";
optional string description = 1 [
help_text = "Human-readable description",
text = True];
optional manytoone onu_device->ONUDevice:volt_service_instances = 2:1003 [
help_text = "ONUDevice that belongs to this Subscriber chain",
db_index = True];
}
message TechnologyProfile (XOSBase) {
option verbose_name = "Technology Profile";
option description = "The Technology Profile that is utilized by VOLTHA";
option custom_python = "True";
required string technology = 1 [
help_text = "The technology being utilized by the adaptor",
db_index = True,
tosca_key = True,
max_length = 16];
required int32 profile_id = 2 [
help_text = "The numeric id of the profile",
db_index = True,
tosca_key = True,
min_value = 64,
max_value = 255];
required string profile_value = 3 [
help_text = "The technology profile value in JSON format",
max_length = 4096];
}