blob: a3b29e840565578042a0c6a071efe84843f3f06a [file] [log] [blame]
Scott Baker4eb615b2017-05-05 16:55:22 -07001option name = "rcord";
Matteo Scandolo7689e1c2018-02-23 10:53:29 -08002option app_label = "rcord";
Matteo Scandolo62a83f02018-03-01 15:59:18 -08003option legacy="True";
Scott Baker4eb615b2017-05-05 16:55:22 -07004
Matteo Scandolod1707b32018-05-04 12:42:53 -07005message RCORDService (Service) {
Matteo Scandolo86554be2019-09-05 09:21:17 -07006 option verbose_name = "Subscriber Service";
Scott Bakerfcd15f12019-01-24 13:14:42 -08007 option description = "Service that manages residential subscribers";
8
9 required string access = 11 [
10 help_text = "Name of service that is managing the Access Network",
11 default = "voltha", choices = "(('voltha', 'VOLTHA'), ('unknown', 'Unknown'))",
Scott Bakerfcd15f12019-01-24 13:14:42 -080012 max_length = 30];
Matteo Scandolod1707b32018-05-04 12:42:53 -070013}
14
Matteo Scandoloa4a279a2019-03-14 15:56:22 -070015message BandwidthProfile(XOSBase) {
16 option verbose_name = "Bandwidth Profile";
17 option description = "The Bandwidth Profile assinged to a residential subscriber";
18
19 // TODO add help_text
Scott Bakerfa330332019-04-09 15:43:11 -070020 required string name = 3 [
21 help_text = "Name of bandwidth profile",
22 max_length = 256];
Matteo Scandolo86554be2019-09-05 09:21:17 -070023 required int32 cir = 4 [help_text = "Committed Information Rate"];
24 required int32 cbs = 5 [help_text = "Committed Burst Rate"];
25 required int32 eir = 6 [help_text = "Excess Information Rate"];
26 required int32 ebs = 7 [help_text = "Excess Burst Rate"];
27 required int32 air = 8 [help_text = "Access Information Rate"];
Matteo Scandoloa4a279a2019-03-14 15:56:22 -070028}
29
Matteo Scandolod1707b32018-05-04 12:42:53 -070030message RCORDSubscriber (ServiceInstance) {
31 option kind = "RCORDSubscriber";
Matteo Scandolo86554be2019-09-05 09:21:17 -070032 option verbose_name = "Subscriber";
Matteo Scandolod1707b32018-05-04 12:42:53 -070033 option owner_class_name = "RCORDService";
Scott Bakerfcd15f12019-01-24 13:14:42 -080034 option description = "A residential subscriber";
vigneshethirajd9b1f8e2019-06-04 19:00:14 +053035 option policy_implemented = "True";
Matteo Scandolofa8d9712019-06-06 15:46:02 -070036 option sync_implemented = "True";
Scott Baker4eb615b2017-05-05 16:55:22 -070037
Matteo Scandolocc94e902018-05-22 15:25:25 -070038 // vsg related configurations
Scott Bakerfcd15f12019-01-24 13:14:42 -080039 optional manytoone creator->User:created_rcord_subscribers = 15 [
40 help_text = "User who created this RCORDSubscriber object",
41 db_index = True];
42 optional string status = 11 [
43 help_text = "Status of subscriber provisioning and authentication",
44 content_type = "stripped",
Scott Bakerfcd15f12019-01-24 13:14:42 -080045 default = "enabled",
46 choices = "(('enabled', 'Enabled'), ('disabled', 'Disabled'), ('pre-provisioned', 'Pre Provisioned'), ('awaiting-auth', 'Awaiting Authentication'), ('auth-failed', 'Authentication Failed'))",
47 max_length = 30];
Matteo Scandolof5a8cf92018-04-10 14:42:21 -070048
Matteo Scandolocc94e902018-05-22 15:25:25 -070049 // parameters for r-cord lite
Scott Bakerfcd15f12019-01-24 13:14:42 -080050 optional int32 c_tag = 12 [
51 help_text = "Customer VLAN Tag, one half of the double-tag that identifies this subscriber's traffic",
Scott Bakerfcd15f12019-01-24 13:14:42 -080052 min_value = 0,
53 max_value = 4096];
54 optional int32 s_tag = 19 [
55 help_text = "Service VLAN Tag, one half of the double-tag that identifies this subscriber's traffic",
Scott Bakerfcd15f12019-01-24 13:14:42 -080056 min_value = 0,
57 max_value = 4096];
58 required string onu_device = 13 [
Scott Bakerfa330332019-04-09 15:43:11 -070059 help_text = "ONUDevice serial number",
Matteo Scandoloda74d0d2019-05-24 14:15:06 -070060 max_length = 256,
61 tosca_key = True];
Scott Bakerfcd15f12019-01-24 13:14:42 -080062 optional string mac_address = 18 [
Scott Bakerfa330332019-04-09 15:43:11 -070063 help_text = "Subscriber MAC Address",
64 max_length = 256];
Matteo Scandoloa2b2e222019-06-18 18:32:43 -070065 required int32 tech_profile_id = 23 [
Matteo Scandolo17962fc2019-06-21 10:17:47 -070066 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.",
67 min_value = 64,
68 max_value = 255];
Matteo Scandolo86801bd2018-08-08 08:55:18 -070069
70 // operator specific fields
Scott Bakerfcd15f12019-01-24 13:14:42 -080071 optional string nas_port_id = 20 [
Scott Bakerfa330332019-04-09 15:43:11 -070072 help_text = "NAS Port ID used in Radius to identify physical interface used to authenticate subscriber",
73 max_length = 256];
Scott Bakerfcd15f12019-01-24 13:14:42 -080074 optional string circuit_id = 21 [
Scott Bakerfa330332019-04-09 15:43:11 -070075 help_text = "Option 82 Circuit ID for DHCP relay agent",
76 max_length = 256];
Scott Bakerfcd15f12019-01-24 13:14:42 -080077 optional string remote_id = 22 [
Scott Bakerfa330332019-04-09 15:43:11 -070078 help_text = "Option 82 Remote ID for DHCP relay agent",
79 max_length = 256];
Matteo Scandoloa4a279a2019-03-14 15:56:22 -070080
81 required manytoone upstream_bps->BandwidthProfile:us_subscriber = 31:1001 [
82 help_text = "The subscriber the IP address belongs to"];
83 required manytoone downstream_bps->BandwidthProfile:ds_subscriber = 32:1002 [
84 help_text = "The subscriber the IP address belongs to"];
Scott Baker4eb615b2017-05-05 16:55:22 -070085}
Luca Preted6700ba2018-09-12 16:40:49 -070086
87message RCORDIpAddress(XOSBase) {
88 option verbose_name = "IP address";
Scott Bakerfcd15f12019-01-24 13:14:42 -080089 option description = "An IP Address assinged to a residential subscriber";
Luca Preted6700ba2018-09-12 16:40:49 -070090
Scott Bakerfcd15f12019-01-24 13:14:42 -080091 required manytoone subscriber->RCORDSubscriber:ips = 1:1001 [
92 help_text = "The subscriber the IP address belongs to",
Matteo Scandolo003ce972019-06-24 15:28:31 -070093 db_index = True,
94 feedback_state = True];
Scott Bakerfcd15f12019-01-24 13:14:42 -080095 required string ip = 2 [
96 help_text = "The unique IP address (either IPv4 or IPv6 / netmask)",
Scott Bakerfcd15f12019-01-24 13:14:42 -080097 max_length = 52,
Matteo Scandolo003ce972019-06-24 15:28:31 -070098 feedback_state = True,
Scott Bakerfcd15f12019-01-24 13:14:42 -080099 unique_with = "subscriber"];
100 optional string description = 3 [
101 help_text = "A short description of the IP address",
Matteo Scandolo003ce972019-06-24 15:28:31 -0700102 feedback_state = True,
Scott Bakerfa330332019-04-09 15:43:11 -0700103 text = True];
Scott Bakerbf209942019-03-08 10:53:43 -0800104}