Adding tofino port tool to repo to have unique location and source of truth

Change-Id: I8ad0cd951b805f1ccc627afee2c4487d46b4b7e1
diff --git a/tools/test/tofino-port-auto-setup-tool/thrift/pltfm_pm_rpc.thrift b/tools/test/tofino-port-auto-setup-tool/thrift/pltfm_pm_rpc.thrift
new file mode 100644
index 0000000..b556518
--- /dev/null
+++ b/tools/test/tofino-port-auto-setup-tool/thrift/pltfm_pm_rpc.thrift
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * BAREFOOT NETWORKS CONFIDENTIAL & PROPRIETARY
+ *
+ * Copyright (c) 2015-2016 Barefoot Networks, Inc.
+
+ * All Rights Reserved.
+ *
+ * NOTICE: All information contained herein is, and remains the property of
+ * Barefoot Networks, Inc. and its suppliers, if any. The intellectual and
+ * technical concepts contained herein are proprietary to Barefoot Networks,
+ * Inc.
+ * and its suppliers and may be covered by U.S. and Foreign Patents, patents in
+ * process, and are protected by trade secret or copyright law.
+ * Dissemination of this information or reproduction of this material is
+ * strictly forbidden unless prior written permission is obtained from
+ * Barefoot Networks, Inc.
+ *
+ * No warranty, explicit or implicit is provided, unless granted under a
+ * written agreement with Barefoot Networks, Inc.
+ *
+ * $Id: $
+ *
+ ******************************************************************************/
+/*
+        pltfm_pm thrift file
+*/
+
+namespace py pltfm_pm_rpc
+namespace cpp pltfm_pm_rpc
+
+typedef i32 pltfm_pm_status_t
+typedef i32 pltfm_pm_dev_port_t
+typedef byte pltfm_pm_device_t
+
+exception InvalidPltfmPmOperation {
+  1:i32 code
+}
+
+enum pltfm_pm_port_speed_t {
+  BF_SPEED_NONE = 0,
+  BF_SPEED_1G = 1,
+  BF_SPEED_10G = 2,
+  BF_SPEED_25G = 3,
+  BF_SPEED_40G = 4,
+  BF_SPEED_40G_NB = 5,
+  BF_SPEED_50G = 6,
+  BF_SPEED_100G = 7,
+  BF_SPEED_40G_NON_BREAKABLE = 8
+}
+
+enum pltfm_pm_fec_type_t {
+  BF_FEC_TYP_NONE = 0,
+  BF_FEC_TYP_FIRECODE = 1,
+  BF_FEC_TYP_REED_SOLOMON = 2
+}
+
+enum pltfm_pm_oper_status_t {
+  DOWN = 0,
+  UP = 1
+}
+
+enum pltfm_pm_board_type_t {
+  BF_PLTFM_BD_ID_MAVERICKS_P0A = 0x0234,
+  BF_PLTFM_BD_ID_MAVERICKS_P0B = 0x1234,
+  BF_PLTFM_BD_ID_MONTARA_P0A = 0x2234,
+  BF_PLTFM_BD_ID_MONTARA_P0B = 0x3234,
+  BF_PLTFM_BD_ID_MAVERICKS_P0B_EMU = 0x4234,
+  BF_PLTFM_BD_ID_UNKNOWN = 0XFFFF
+}
+
+service pltfm_pm_rpc {
+    /* init */
+    pltfm_pm_status_t pltfm_pm_port_add(1:pltfm_pm_device_t device, 2:pltfm_pm_dev_port_t dev_port, 3:pltfm_pm_port_speed_t ps, 4:pltfm_pm_fec_type_t fec) throws (1:InvalidPltfmPmOperation ouch);
+    pltfm_pm_status_t pltfm_pm_port_del(1:pltfm_pm_device_t device, 2:pltfm_pm_dev_port_t dev_port) throws (1:InvalidPltfmPmOperation ouch);
+    pltfm_pm_status_t pltfm_pm_port_enable(1:pltfm_pm_device_t device, 2:pltfm_pm_dev_port_t dev_port) throws (1:InvalidPltfmPmOperation ouch);
+    pltfm_pm_status_t pltfm_pm_port_dis(1:pltfm_pm_device_t device, 2:pltfm_pm_dev_port_t dev_port) throws (1:InvalidPltfmPmOperation ouch);
+    pltfm_pm_status_t pltfm_pm_switchd_port_cleanup(1:pltfm_pm_device_t device) throws (1:InvalidPltfmPmOperation ouch);
+    pltfm_pm_oper_status_t pltfm_pm_port_oper_status_get(1:pltfm_pm_device_t device, 2:pltfm_pm_dev_port_t dev_port) throws (1:InvalidPltfmPmOperation ouch);
+    pltfm_pm_board_type_t pltfm_pm_board_type_get() throws (1:InvalidPltfmPmOperation ouch);
+    pltfm_pm_status_t pltfm_pm_port_an_set(1:pltfm_pm_device_t device, 2:pltfm_pm_dev_port_t dev_port, 3:i32 an_flag) throws (1:InvalidPltfmPmOperation ouch);
+    pltfm_pm_status_t pltfm_pm_serdes_lane_map_set(1:pltfm_pm_device_t device) throws (1:InvalidPltfmPmOperation ouch);
+    pltfm_pm_status_t pltfm_pm_serdes_init(1:pltfm_pm_device_t device) throws (1:InvalidPltfmPmOperation ouch);
+}