ONOS-4086 to ONOS-4091, ONOS-4098 to ONOS-4100:ISIS controller implementation

Change-Id: I7be52805652fe762baf808515401d6b5042b2aa5
diff --git a/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/IpExtendedReachabilityTlv.java b/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/IpExtendedReachabilityTlv.java
index 14962d8..f1549e4 100644
--- a/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/IpExtendedReachabilityTlv.java
+++ b/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/IpExtendedReachabilityTlv.java
@@ -220,10 +220,9 @@
         byte[] bytes = null;
         byte[] tlvHeader = tlvHeaderAsByteArray();
         byte[] tlvBody = tlvBodyAsBytes();
-        //systemID + pseudo number+length of subtlv=11l
-        tlvBody[10] = (byte) (tlvBody.length - 11);
         tlvHeader[1] = (byte) tlvBody.length;
         bytes = Bytes.concat(tlvHeader, tlvBody);
+
         return bytes;
     }
 
@@ -246,8 +245,8 @@
         } else {
             controlInfo = controlInfo + "0";
         }
-        String prefixlength = IsisUtil.toEightBitBinary(Integer.toBinaryString(this.prefixLength()));
-        controlInfo = controlInfo + prefixlength.substring(2, prefixlength.length());
+        String prefixLength = IsisUtil.toEightBitBinary(Integer.toBinaryString(this.prefixLength()));
+        controlInfo = controlInfo + prefixLength.substring(2, prefixLength.length());
         bodyLst.add(Byte.parseByte(controlInfo, 2));
         if (this.isSubTlvPresence()) {
             bodyLst.add(this.subTlvLength());
@@ -255,6 +254,8 @@
                 bodyLst.addAll(SubTlvToBytes.tlvToBytes(trafficEngineeringSubTlv));
             }
         }
+        bodyLst.addAll(Bytes.asList(IsisUtil.prefixToBytes(this.prefix())));
+
         return Bytes.toArray(bodyLst);
     }