blob: e1ebb9a48bac5131d890ea0eb865d695c6967979 [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) {
6 option verbose_name = "RCORD 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 Scandoloa4a279a2019-03-14 15:56:22 -070023 required int32 cir = 4;
24 required int32 cbs = 5;
25 required int32 eir = 6;
26 required int32 ebs = 7;
27 required int32 air = 8;
28}
29
Matteo Scandolod1707b32018-05-04 12:42:53 -070030message RCORDSubscriber (ServiceInstance) {
31 option kind = "RCORDSubscriber";
32 option verbose_name = "RCORD Subscriber";
33 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 Scandolo86801bd2018-08-08 08:55:18 -070065
66 // operator specific fields
Scott Bakerfcd15f12019-01-24 13:14:42 -080067 optional string nas_port_id = 20 [
Scott Bakerfa330332019-04-09 15:43:11 -070068 help_text = "NAS Port ID used in Radius to identify physical interface used to authenticate subscriber",
69 max_length = 256];
Scott Bakerfcd15f12019-01-24 13:14:42 -080070 optional string circuit_id = 21 [
Scott Bakerfa330332019-04-09 15:43:11 -070071 help_text = "Option 82 Circuit ID for DHCP relay agent",
72 max_length = 256];
Scott Bakerfcd15f12019-01-24 13:14:42 -080073 optional string remote_id = 22 [
Scott Bakerfa330332019-04-09 15:43:11 -070074 help_text = "Option 82 Remote ID for DHCP relay agent",
75 max_length = 256];
selvamuthukumaran_c1fd8b4a2019-05-20 13:09:18 +000076 optional int32 tech_profile_id = 23 [
77 help_text = "Technology profile id to be used along with Technology type to retreive the profile",
78 min_value = 0,
79 max_value = 65535];
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",
Scott Bakerbf209942019-03-08 10:53:43 -080093 db_index = True];
Scott Bakerfcd15f12019-01-24 13:14:42 -080094 required string ip = 2 [
95 help_text = "The unique IP address (either IPv4 or IPv6 / netmask)",
Scott Bakerfcd15f12019-01-24 13:14:42 -080096 max_length = 52,
Scott Bakerfcd15f12019-01-24 13:14:42 -080097 unique_with = "subscriber"];
98 optional string description = 3 [
99 help_text = "A short description of the IP address",
Scott Bakerfa330332019-04-09 15:43:11 -0700100 text = True];
Scott Bakerbf209942019-03-08 10:53:43 -0800101}