blob: 0be1d85a4c0f3ed267e6dd93bd296a7c75ad7291 [file] [log] [blame]
option name = "rcord";
option app_label = "rcord";
option legacy="True";
message RCORDService (Service) {
option verbose_name = "Subscriber 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 [help_text = "Committed Information Rate"];
required int32 cbs = 5 [help_text = "Committed Burst Rate"];
required int32 eir = 6 [help_text = "Excess Information Rate"];
required int32 ebs = 7 [help_text = "Excess Burst Rate"];
required int32 air = 8 [help_text = "Access Information Rate"];
}
message RCORDSubscriber (ServiceInstance) {
option kind = "RCORDSubscriber";
option verbose_name = "Subscriber";
option owner_class_name = "RCORDService";
option description = "A residential subscriber";
option policy_implemented = "True";
option sync_implemented = "True";
// 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];
required int32 tech_profile_id = 23 [
help_text = "Technology profile id to be used along with Technology type to retreive the profile. Make sure that the profile ID specified exists for the technology this subscriber's OLT is using.",
min_value = 64,
max_value = 255];
// 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];
required manytoone upstream_bps->BandwidthProfile:us_subscriber = 31:1001 [
help_text = "Upstream Bandwidth Profile for a subscriber"];
required manytoone downstream_bps->BandwidthProfile:ds_subscriber = 32:1002 [
help_text = "Downstream Bandwidth Profile for a subscriber"];
}
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,
feedback_state = True];
required string ip = 2 [
help_text = "The unique IP address (either IPv4 or IPv6 / netmask)",
max_length = 52,
feedback_state = True,
unique_with = "subscriber"];
optional string description = 3 [
help_text = "A short description of the IP address",
feedback_state = True,
text = True];
}