diff options
Diffstat (limited to 'src/include/VppCrossConnect.hpp')
-rw-r--r-- | src/include/VppCrossConnect.hpp | 70 |
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 |