blob: b542f30f8688390b2f7c020aaa07b772f55e160f [file] [log] [blame]
Sapan Bhatia8c95eb42017-05-02 12:17:52 +02001option app_label = "fabric";
Matteo Scandolo9cc4f6f2017-10-02 18:03:58 -07002option name = "fabric";
Sapan Bhatia8c95eb42017-05-02 12:17:52 +02003
Luca Preteb601c382018-04-30 16:10:43 -07004message FabricService(Service) {
Matteo Scandolo9cc4f6f2017-10-02 18:03:58 -07005 option verbose_name = "Fabric Service";
Scott Bakera3b3ff22019-01-23 11:25:18 -08006 option description = "Service that manages and configures fabric switches in ONOS";
Matteo Scandolo9cc4f6f2017-10-02 18:03:58 -07007
Scott Bakera3b3ff22019-01-23 11:25:18 -08008 optional bool autoconfig = 1 [
9 help_text="Automatically apply addresses from AddressManager service to Fabric",
10 default = True,
11 null = False];
Sapan Bhatia8c95eb42017-05-02 12:17:52 +020012}
Luca Preteb601c382018-04-30 16:10:43 -070013
14message Switch(XOSBase) {
15 option verbose_name = "Fabric Switch";
Scott Bakera3b3ff22019-01-23 11:25:18 -080016 option description = "An individual fabric switch managed by ONOS";
Luca Preteb601c382018-04-30 16:10:43 -070017
Scott Bakera3b3ff22019-01-23 11:25:18 -080018 required string ofId = 1 [
19 help_text = "The unique OpenFlow ID of the fabric switch",
20 db_index = False,
21 max_length = 19];
22 required string name = 2 [
23 help_text = "The unique name of the fabric switch",
24 db_index = False,
25 max_length = 254];
26 required string driver = 3 [
27 help_text = "The driver used by the SDN controller",
28 db_index = False,
29 default = "ofdpa3",
30 max_length = 254];
31 required int32 ipv4NodeSid = 4 [
32 help_text = "The MPLS label used by the switch [17 - 1048576]",
33 db_index = False];
34 required string ipv4Loopback = 5 [
35 help_text = "Fabric loopback interface",
36 db_index = False,
37 max_length = 17];
38 required string routerMac = 6 [
39 help_text = "MAC address of the fabric switch used for all interfaces",
40 db_index = False,
41 max_length = 17];
42 required bool isEdgeRouter = 7 [
43 help_text="True if the fabric switch is a leaf, False if it is a spine",
44 default = True,
45 null = False];
Luca Preteb601c382018-04-30 16:10:43 -070046}
47
48message SwitchPort(XOSBase) {
49 option verbose_name = "Fabric Switch Port";
Scott Bakera3b3ff22019-01-23 11:25:18 -080050 option description = "A port on a fabric switch";
Luca Preteb601c382018-04-30 16:10:43 -070051
Scott Bakera3b3ff22019-01-23 11:25:18 -080052 required manytoone switch->Switch:ports = 1:1001 [
53 help_text = "The fabric switch the port belongs to",
54 db_index = True,
55 tosca_key=True];
56 required int32 portId = 2 [
57 help_text = "The unique port OpenFlow port ID",
58 db_index = False,
59 tosca_key=True];
60 required bool host_learning = 3 [
61 help_text = "whether or not to enable autodiscovery",
62 default = True,
63 db_index = False];
Luca Preteb601c382018-04-30 16:10:43 -070064}
65
66message PortInterface(XOSBase) {
67 option verbose_name = "Fabric Port Interface";
Scott Bakera3b3ff22019-01-23 11:25:18 -080068 option description = "An interface on a port on a fabric switch";
Luca Preteb601c382018-04-30 16:10:43 -070069
Scott Bakera3b3ff22019-01-23 11:25:18 -080070 required manytoone port->SwitchPort:interfaces = 1:1001 [
71 help_text = "The fabric switch port the interface belongs to",
72 db_index = True];
73 required string name = 2 [
74 help_text = "The unique name of the fabric switch port",
75 db_index = False,
76 max_length = 254];
77 optional int32 vlanUntagged = 3 [
78 help_text = "The optional untagged VLAN ID for the interface",
79 db_index = False];
Matteo Scandoloaf3c9942018-06-27 14:03:12 -070080}
81
82message NodeToSwitchPort(XOSBase) {
83 option verbose_name = "Node to switch port";
84 option description = "Compute Node connection to a Fabric switch port";
85
Scott Bakera3b3ff22019-01-23 11:25:18 -080086 required manytoone port->SwitchPort:node_to_switch_ports = 1:1002 [
87 help_text = "The fabric switch port the node is connected to",
88 db_index = True,
89 tosca_key=True];
90 required manytoone node->Node:node_to_switch_ports = 2:1004 [
91 help_text = "The ComputeNode this port is connected to",
92 db_index = True,
93 tosca_key=True];
Luca Prete15377872018-09-11 17:32:55 -070094}
95
96message FabricIpAddress(XOSBase) {
97 option verbose_name = "IP address";
Scott Bakera3b3ff22019-01-23 11:25:18 -080098 option description = "An IP address associated with a port on a fabric switch";
Luca Prete15377872018-09-11 17:32:55 -070099
Scott Bakera3b3ff22019-01-23 11:25:18 -0800100 required manytoone interface->PortInterface:ips = 1:1001 [
101 help_text = "The port interface the IP address belongs to",
102 db_index = True,
103 tosca_key = True];
104 required string ip = 2 [
105 help_text = "The unique IP address (either IPv4 or IPv6 / netmask)",
106 db_index = False,
107 max_length = 52,
108 tosca_key = True,
109 unique_with = "interface"];
110 optional string description = 3 [
111 help_text = "A short description of the IP address",
112 db_index = False,
113 max_length = 254];
Luca Prete15377872018-09-11 17:32:55 -0700114}