DVR: run L3 output features
- rename l2_bridged to is_dvr. Including on the ip.api
this was new in the 18.01 release so no compatability issues.
- steal the free space in vnet_buffer_opaque_t for use with flags.
- run the ipX-output feature arc from the DVR DPO
Change-Id: I040e5976d1dbe076fcdda3a40a7804f56337ce3f
Signed-off-by: Neale Ranns <nranns@cisco.com>
diff --git a/src/vpp-api/vom/route.hpp b/src/vpp-api/vom/route.hpp
index 2fb855a..65797b7 100644
--- a/src/vpp-api/vom/route.hpp
+++ b/src/vpp-api/vom/route.hpp
@@ -72,6 +72,29 @@
};
/**
+ * Path flags
+ */
+ class flags_t : public enum_base<flags_t>
+ {
+ public:
+ /**
+ * No flags
+ */
+ const static flags_t NONE;
+
+ /**
+ * A path that resolves via a DVR next-hop
+ */
+ const static flags_t DVR;
+
+ private:
+ /**
+ * Private constructor taking the value and the string name
+ */
+ flags_t(int v, const std::string& s);
+ };
+
+ /**
* constructor for special paths
*/
path(special_t special);
@@ -97,6 +120,7 @@
*/
path(const interface& interface,
const nh_proto_t& proto,
+ const flags_t& flags = flags_t::NONE,
uint8_t weight = 1,
uint8_t preference = 0);
@@ -130,6 +154,7 @@
*/
special_t type() const;
nh_proto_t nh_proto() const;
+ flags_t flags() const;
const boost::asio::ip::address& nh() const;
std::shared_ptr<route_domain> rd() const;
std::shared_ptr<interface> itf() const;
@@ -148,6 +173,11 @@
nh_proto_t m_nh_proto;
/**
+ * Flags for the path
+ */
+ flags_t m_flags;
+
+ /**
* The next-hop
*/
boost::asio::ip::address m_nh;