+/**
+ * @internal
+ * Pass the current hairpin queue HW and/or SW information to the peer queue
+ * and fetch back the information of the peer queue.
+ *
+ * @param peer_port
+ * Peer port identifier of the Ethernet device.
+ * @param peer_queue
+ * Peer queue index of the port.
+ * @param cur_info
+ * Pointer to the current information structure.
+ * @param peer_info
+ * Pointer to the peer information, output.
+ * @param direction
+ * Direction to pass the information.
+ * positive - pass Tx queue information and get peer Rx queue information
+ * zero - pass Rx queue information and get peer Tx queue information
+ *
+ * @return
+ * Negative errno value on error, 0 on success.
+ */
+__rte_internal
+int
+rte_eth_hairpin_queue_peer_update(uint16_t peer_port, uint16_t peer_queue,
+ struct rte_hairpin_peer_info *cur_info,
+ struct rte_hairpin_peer_info *peer_info,
+ uint32_t direction);
+
+/**
+ * @internal
+ * Configure current hairpin queue with the peer information fetched to create
+ * the connection (bind) with peer queue in the specified direction.
+ * This function might need to be called twice to fully create the connections.
+ *
+ * @param cur_port
+ * Current port identifier of the Ethernet device.
+ * @param cur_queue
+ * Current queue index of the port.
+ * @param peer_info
+ * Pointer to the peer information, input.
+ * @param direction
+ * Direction to create the connection.
+ * positive - bind current Tx queue to peer Rx queue
+ * zero - bind current Rx queue to peer Tx queue
+ *
+ * @return
+ * Negative errno value on error, 0 on success.
+ */
+__rte_internal
+int
+rte_eth_hairpin_queue_peer_bind(uint16_t cur_port, uint16_t cur_queue,
+ struct rte_hairpin_peer_info *peer_info,
+ uint32_t direction);
+
+/**
+ * @internal
+ * Reset the current queue state and configuration to disconnect (unbind) it
+ * from the peer queue.
+ * This function might need to be called twice to disconnect each other.
+ *
+ * @param cur_port
+ * Current port identifier of the Ethernet device.
+ * @param cur_queue
+ * Current queue index of the port.
+ * @param direction
+ * Direction to destroy the connection.
+ * positive - unbind current Tx queue from peer Rx queue
+ * zero - unbind current Rx queue from peer Tx queue
+ *
+ * @return
+ * Negative errno value on error, 0 on success.
+ */
+__rte_internal
+int
+rte_eth_hairpin_queue_peer_unbind(uint16_t cur_port, uint16_t cur_queue,
+ uint32_t direction);
+