[Emu][ONOS-2593, ONOS-2594] BGP SBI controller and session handler

Change-Id: Ia95717ff173b2e3e1198bdd0fafef7cb0aa8f734
diff --git a/utils/misc/src/main/java/org/onlab/util/HexDump.java b/utils/misc/src/main/java/org/onlab/util/HexDump.java
new file mode 100755
index 0000000..cfb7939
--- /dev/null
+++ b/utils/misc/src/main/java/org/onlab/util/HexDump.java
@@ -0,0 +1,57 @@
+/*

+ * Copyright 2015 Open Networking Laboratory

+ *

+ * Licensed under the Apache License, Version 2.0 (the "License");

+ * you may not use this file except in compliance with the License.

+ * You may obtain a copy of the License at

+ *

+ *     http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing, software

+ * distributed under the License is distributed on an "AS IS" BASIS,

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+ * See the License for the specific language governing permissions and

+ * limitations under the License.

+ */

+package org.onlab.util;

+

+import org.jboss.netty.buffer.ChannelBuffer;

+import org.slf4j.Logger;

+import org.slf4j.LoggerFactory;

+

+/**

+ * HexDump class an utility to dump buffer in hex format.

+ */

+public final class HexDump {

+    protected static final Logger log = LoggerFactory.getLogger(HexDump.class);

+

+    private HexDump() {

+    }

+

+    /**

+     * Dump the buffer content in hex format.

+     *

+     * @param buff buffer content to dump in hex format

+     */

+    public static void dump(ChannelBuffer buff) {

+        try {

+            byte[] yTemp;

+            yTemp = buff.array();

+

+            int iStartIndex = buff.readerIndex();

+            int iEndIndex = buff.writerIndex();

+            do {

+                StringBuilder sb = new StringBuilder();

+                for (int k = 0; (k < 16) && (iStartIndex < iEndIndex); ++k) {

+                    if (0 == k % 4) {

+                        sb.append(String.format(" ")); // blank after 4 bytes

+                    }

+                    sb.append(String.format("%02X ", yTemp[iStartIndex++]));

+                }

+                log.debug(sb.toString());

+            } while (iStartIndex < iEndIndex);

+        } catch (Exception e) {

+            log.error("[HexDump] Invalid buffer: " + e.toString());

+        }

+    }

+}