SEBA-401: Reformat and expand descriptions in fabric xproto

Change-Id: I994a46b57570f0a52d034221803b223281395ffa
diff --git a/VERSION b/VERSION
index ebf14b4..63a1a1c 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.1.8
+2.1.9
diff --git a/samples/fabric-config.yaml b/samples/fabric-config.yaml
index 63ba218..e82db0f 100644
--- a/samples/fabric-config.yaml
+++ b/samples/fabric-config.yaml
@@ -19,6 +19,7 @@
   - custom_types/switch.yaml
   - custom_types/switchport.yaml
   - custom_types/portinterface.yaml
+  - custom_types/fabricipaddress.yaml
 description: Configures fabric switches and related ports
 topology_template:
   node_templates:
@@ -47,13 +48,23 @@
     interface#interface1:
       type: tosca.nodes.PortInterface
       properties:
-        ips: 192.168.0.254/24
         name: port1
       requirements:
         - port:
             node: port#port1
             relationship: tosca.relationships.BelongsToOne
 
+    # Setup a fabric switch port interface
+    ipaddress#ipaddress1:
+      type: tosca.nodes.FabricIpAddress
+      properties:
+        ip: 192.168.0.254/24
+        description: some ip address
+      requirements:
+        - interface:
+            node: interface#interface1
+            relationship: tosca.relationships.BelongsToOne
+
     # Setup a fabric switch port with host_learning disabled
     port#port2:
       type: tosca.nodes.SwitchPort
diff --git a/samples/service.yaml b/samples/service.yaml
index a6869ec..d35803e 100644
--- a/samples/service.yaml
+++ b/samples/service.yaml
@@ -28,7 +28,7 @@
       type: tosca.nodes.ONOSService
       properties:
           name: ONOS_Fabric
-          kind: platform
+          kind: data
           rest_hostname: onos-fabric-ui
           rest_port: 8181
 
@@ -36,12 +36,12 @@
       type: tosca.nodes.FabricService
       properties:
         name: fabric
-        kind: platform
+        kind: data
 
     service_dependency#onos-fabric_fabric:
       type: tosca.nodes.ServiceDependency
       properties:
-        connect_method: None
+        connect_method: none
       requirements:
         - subscriber_service:
             node: service#fabric
diff --git a/xos/synchronizer/models/fabric.xproto b/xos/synchronizer/models/fabric.xproto
index aff47f8..b542f30 100644
--- a/xos/synchronizer/models/fabric.xproto
+++ b/xos/synchronizer/models/fabric.xproto
@@ -3,50 +3,112 @@
 
 message FabricService(Service) {
     option verbose_name = "Fabric Service";
+    option description = "Service that manages and configures fabric switches in ONOS";
     
-    optional bool autoconfig = 1 [default = True, help_text="Autoconfigure the fabric", null=False];
+    optional bool autoconfig = 1 [
+        help_text="Automatically apply addresses from AddressManager service to Fabric",
+        default = True,
+        null = False];
 }
 
 message Switch(XOSBase) {
     option verbose_name = "Fabric Switch";
+    option description = "An individual fabric switch managed by ONOS";
 
-    required string ofId = 1 [help_text = "The unique OpenFlow ID of the fabric switch", max_length = 19,db_index = False];
-    required string name = 2 [help_text = "The unique name of the fabric switch", max_length = 254,db_index = False];
-    required string driver = 3 [help_text = "The driver used by the SDN controller", max_length = 254,db_index = False, default = "ofdpa3"];
-    required int32 ipv4NodeSid = 4 [help_text = "The MPLS label used by the switch [17 - 1048576]",db_index = False];
-    required string ipv4Loopback = 5 [help_text = "Fabric loopback interface", max_length = 17,db_index = False];
-    required string routerMac = 6 [help_text = "MAC address of the fabric switch used for all interfaces", max_length = 17,db_index = False];
-    required bool isEdgeRouter = 7 [default = True, help_text="Whether the fabric switch is a leaf or a spine", null=False];
+    required string ofId = 1 [
+        help_text = "The unique OpenFlow ID of the fabric switch",
+        db_index = False,
+        max_length = 19];
+    required string name = 2 [
+        help_text = "The unique name of the fabric switch",
+        db_index = False,
+        max_length = 254];
+    required string driver = 3 [
+        help_text = "The driver used by the SDN controller",
+        db_index = False,
+        default = "ofdpa3",
+        max_length = 254];
+    required int32 ipv4NodeSid = 4 [
+        help_text = "The MPLS label used by the switch [17 - 1048576]",
+        db_index = False];
+    required string ipv4Loopback = 5 [
+        help_text = "Fabric loopback interface",
+        db_index = False,
+        max_length = 17];
+    required string routerMac = 6 [
+        help_text = "MAC address of the fabric switch used for all interfaces",
+        db_index = False,
+        max_length = 17];
+    required bool isEdgeRouter = 7 [
+        help_text="True if the fabric switch is a leaf, False if it is a spine",
+        default = True,
+        null = False];
 }
 
 message SwitchPort(XOSBase) {
     option verbose_name = "Fabric Switch Port";
+    option description = "A port on a fabric switch";
 
-    required manytoone switch->Switch:ports = 1:1001 [help_text = "The fabric switch the port belongs to", db_index = True, tosca_key=True];
-    required int32 portId = 2 [help_text = "The unique port OpenFlow port ID",db_index = False, tosca_key=True];
-    required bool host_learning = 3 [help_text = "whether or not to enable autodiscovery", default = True,db_index = False];
+    required manytoone switch->Switch:ports = 1:1001 [
+        help_text = "The fabric switch the port belongs to",
+        db_index = True,
+        tosca_key=True];
+    required int32 portId = 2 [
+        help_text = "The unique port OpenFlow port ID",
+        db_index = False,
+        tosca_key=True];
+    required bool host_learning = 3 [
+        help_text = "whether or not to enable autodiscovery",
+        default = True,
+        db_index = False];
 }
 
 message PortInterface(XOSBase) {
     option verbose_name = "Fabric Port Interface";
+    option description = "An interface on a port on a fabric switch";
 
-    required manytoone port->SwitchPort:interfaces = 1:1001 [help_text = "The fabric switch port the interface belongs to", db_index = True];
-    required string name = 2 [help_text = "The unique name of the fabric switch port", max_length = 254,db_index = False];
-    optional int32 vlanUntagged = 3 [help_text = "The optional untagged VLAN ID for the interface", db_index = False];
+    required manytoone port->SwitchPort:interfaces = 1:1001 [
+        help_text = "The fabric switch port the interface belongs to",
+        db_index = True];
+    required string name = 2 [
+        help_text = "The unique name of the fabric switch port",
+        db_index = False,
+        max_length = 254];
+    optional int32 vlanUntagged = 3 [
+        help_text = "The optional untagged VLAN ID for the interface",
+        db_index = False];
 }
 
 message NodeToSwitchPort(XOSBase) {
     option verbose_name = "Node to switch port";
     option description = "Compute Node connection to a Fabric switch port";
 
-    required manytoone port->SwitchPort:node_to_switch_ports = 1:1002 [help_text = "The fabric switch port the node is connected to", db_index = True, tosca_key=True];
-    required manytoone node->Node:node_to_switch_ports = 2:1004 [help_text = "The ComputeNode this port is connected to", db_index = True, tosca_key=True];
+    required manytoone port->SwitchPort:node_to_switch_ports = 1:1002 [
+        help_text = "The fabric switch port the node is connected to",
+        db_index = True,
+        tosca_key=True];
+    required manytoone node->Node:node_to_switch_ports = 2:1004 [
+        help_text = "The ComputeNode this port is connected to",
+        db_index = True,
+        tosca_key=True];
 }
 
 message FabricIpAddress(XOSBase) {
     option verbose_name = "IP address";
+    option description = "An IP address associated with a port on a fabric switch";
 
-    required manytoone interface->PortInterface:ips = 1:1001 [help_text = "The port interface 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,db_index = False, unique_with = "interface"];
-    optional string description = 3 [help_text = "A short description of the IP address", max_length = 254,db_index = False];
+    required manytoone interface->PortInterface:ips = 1:1001 [
+        help_text = "The port interface the IP address belongs to",
+        db_index = True,
+        tosca_key = True];
+    required string ip = 2 [
+        help_text = "The unique IP address (either IPv4 or IPv6 / netmask)",
+        db_index = False,
+        max_length = 52,
+        tosca_key = True,
+        unique_with = "interface"];
+    optional string description = 3 [
+        help_text = "A short description of the IP address",
+        db_index = False,
+        max_length = 254];
 }