ncsid: Import from gBMC
This is the initial code drop from gBMC.
Google-Bug-Id: 179618516
Upstream: 1e71af914bc8c54d8b91d0a1cf377e2696713c2f
Change-Id: Ic653e8271dacd205e04f2bc713071ef2ec5936a4
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/ncsid/src/ncsid.cpp b/ncsid/src/ncsid.cpp
new file mode 100644
index 0000000..58842c1
--- /dev/null
+++ b/ncsid/src/ncsid.cpp
@@ -0,0 +1,33 @@
+#include <ncsi_sockio.h>
+#include <ncsi_state_machine.h>
+#include <net_config.h>
+
+#include <iostream>
+
+int main(int argc, char* argv[])
+{
+ if (argc != 2)
+ {
+ std::cout << "Usage: " << argv[0] << " <interface_name>" << std::endl;
+ return -1;
+ }
+
+ std::string iface_name(argv[1]);
+
+ net::PhosphorConfig net_config(iface_name);
+ net::IFace eth(iface_name);
+
+ ncsi::SockIO ncsi_sock;
+ ncsi_sock.init();
+ ncsi_sock.bind_to_iface(eth);
+ ncsi_sock.filter_vlans();
+
+ ncsi::StateMachine ncsi_fsm;
+ ncsi_fsm.set_sockio(&ncsi_sock);
+ ncsi_fsm.set_net_config(&net_config);
+
+ // If run ever returns -- it's an error.
+ ncsi_fsm.run();
+
+ return -1;
+}