netipmid: move raw sockets to boost::asio sockets

Replacing the raw socket code with boost::asio sockets once again
provides a simple API with fewer lines of code.

Change-Id: Ibdd4b5ecbead947128200f17025c351d9b3ec859
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
diff --git a/sd_event_loop.hpp b/sd_event_loop.hpp
index 5218b27..c81218a 100644
--- a/sd_event_loop.hpp
+++ b/sd_event_loop.hpp
@@ -139,6 +139,12 @@
     sd_event* event = nullptr;
 
   private:
+    /** @brief async handler for incoming udp packets */
+    void handleRmcpPacket();
+
+    /** @brief register the async handler for incoming udp packets */
+    void startRmcpReceive();
+
     /** @brief Event source object for host console. */
     EventSource hostConsole = nullptr;
 
@@ -146,10 +152,9 @@
      */
     std::shared_ptr<boost::asio::io_context> io;
 
-    /** @brief Event source for the UDP socket listening on IPMI standard
-     *         port.
+    /** @brief boost::asio udp socket
      */
-    EventSource udpIPMI = nullptr;
+    std::shared_ptr<boost::asio::ip::udp::socket> udpSocket = nullptr;
 
     /** @brief Map to keep information regarding IPMI payload instance and
      *         timers for character accumulate interval and retry interval.