blob: 38bd39f6f10158cd556544924abf900103a85637 [file] [log] [blame]
option name = "rcord";
option app_label = "rcord";
option legacy="True";
message RCORDService (Service) {
option verbose_name = "RCORD Service";
option description = "Service that manages residential subscribers";
required string access = 11 [
help_text = "Name of service that is managing the Access Network",
default = "voltha", choices = "(('voltha', 'VOLTHA'), ('unknown', 'Unknown'))",
max_length = 30];
}
message BandwidthProfile(XOSBase) {
option verbose_name = "Bandwidth Profile";
option description = "The Bandwidth Profile assinged to a residential subscriber";
// TODO add help_text
required string name = 3 [
help_text = "Name of bandwidth profile",
max_length = 256];
required int32 cir = 4;
required int32 cbs = 5;
required int32 eir = 6;
required int32 ebs = 7;
required int32 air = 8;
}
message RCORDSubscriber (ServiceInstance) {
option kind = "RCORDSubscriber";
option verbose_name = "RCORD Subscriber";
option owner_class_name = "RCORDService";
option description = "A residential subscriber";
// vsg related configurations
optional manytoone creator->User:created_rcord_subscribers = 15 [
help_text = "User who created this RCORDSubscriber object",
db_index = True];
optional string status = 11 [
help_text = "Status of subscriber provisioning and authentication",
content_type = "stripped",
default = "enabled",
choices = "(('enabled', 'Enabled'), ('disabled', 'Disabled'), ('pre-provisioned', 'Pre Provisioned'), ('awaiting-auth', 'Awaiting Authentication'), ('auth-failed', 'Authentication Failed'))",
max_length = 30];
// parameters for r-cord lite
optional int32 c_tag = 12 [
help_text = "Customer VLAN Tag, one half of the double-tag that identifies this subscriber's traffic",
min_value = 0,
max_value = 4096];
optional int32 s_tag = 19 [
help_text = "Service VLAN Tag, one half of the double-tag that identifies this subscriber's traffic",
min_value = 0,
max_value = 4096];
required string onu_device = 13 [
help_text = "ONUDevice serial number",
max_length = 256,
tosca_key = True];
optional string mac_address = 18 [
help_text = "Subscriber MAC Address",
max_length = 256];
// operator specific fields
optional string nas_port_id = 20 [
help_text = "NAS Port ID used in Radius to identify physical interface used to authenticate subscriber",
max_length = 256];
optional string circuit_id = 21 [
help_text = "Option 82 Circuit ID for DHCP relay agent",
max_length = 256];
optional string remote_id = 22 [
help_text = "Option 82 Remote ID for DHCP relay agent",
max_length = 256];
optional int32 tech_profile_id = 23 [
help_text = "Technology profile id to be used along with Technology type to retreive the profile",
min_value = 0,
max_value = 65535];
required manytoone upstream_bps->BandwidthProfile:us_subscriber = 31:1001 [
help_text = "The subscriber the IP address belongs to"];
required manytoone downstream_bps->BandwidthProfile:ds_subscriber = 32:1002 [
help_text = "The subscriber the IP address belongs to"];
}
message RCORDIpAddress(XOSBase) {
option verbose_name = "IP address";
option description = "An IP Address assinged to a residential subscriber";
required manytoone subscriber->RCORDSubscriber:ips = 1:1001 [
help_text = "The subscriber the IP address belongs to",
db_index = True];
required string ip = 2 [
help_text = "The unique IP address (either IPv4 or IPv6 / netmask)",
max_length = 52,
unique_with = "subscriber"];
optional string description = 3 [
help_text = "A short description of the IP address",
text = True];
}