aboutsummaryrefslogtreecommitdiffstats
path: root/src/include/VppCrossConnect.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/VppCrossConnect.hpp')
-rw-r--r--src/include/VppCrossConnect.hpp70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/include/VppCrossConnect.hpp b/src/include/VppCrossConnect.hpp
new file mode 100644
index 0000000..2130d78
--- /dev/null
+++ b/src/include/VppCrossConnect.hpp
@@ -0,0 +1,70 @@
+/* -*- C++ -*-; c-basic-offset: 4; indent-tabs-mode: nil */
+/*
+ * Copyright (c) 2017-2018 Cisco Systems, Inc. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#ifndef OPFLEXAGNET_VPPCROSSCONNECT_H__
+#define OPFLEXAGENT_VPPCROSSCONNECT_H__
+
+#include <list>
+
+#include <boost/asio/ip/address.hpp>
+
+namespace VPP
+{
+/**
+ * A description of the cross connect class.
+ * It will be used for storage, management of storage etc.
+ */
+class CrossConnect
+{
+ public:
+ /**
+ * Default Constructor
+ */
+ CrossConnect();
+
+ struct xconnect_t
+ {
+ xconnect_t(const std::string &name,
+ uint16_t vlan = 0,
+ std::string ip_address = "",
+ std::string tag_rewrite = "");
+ std::string to_string() const;
+ std::string name;
+ uint16_t vlan;
+ boost::asio::ip::address ip;
+ std::string tag_rewrite;
+ };
+
+ typedef std::pair<xconnect_t, xconnect_t> xconnect;
+
+ /**
+ * insert the cross connect interfaces
+ */
+ void insert_xconnect(xconnect xconn);
+
+ /**
+ * configure cross connect on interfaces
+ */
+ void configure_xconnect();
+
+ private:
+ /**
+ * The cross connect pairs set
+ */
+ std::list<xconnect> xconnects;
+};
+}; // namespace VPP
+
+/*
+ * Local Variables:
+ * eval: (c-set-style "llvm.org")
+ * End:
+ */
+
+#endif