dhcp ip: DSCP settings for transmitted DHCP packets
[vpp.git] / src / vnet / mpls / packet.h
index bc67445..8573bc3 100644 (file)
@@ -1,6 +1,3 @@
-#ifndef included_vnet_mpls_packet_h
-#define included_vnet_mpls_packet_h
-
 /*
  * MPLS packet format
  *
  * limitations under the License.
  */
 
+#ifndef included_vnet_mpls_packet_h
+#define included_vnet_mpls_packet_h
+
+#include <vnet/ip/ip_packet.h>
+
 /**
  * A label value only, i.e. 20bits.
  */
@@ -42,6 +44,32 @@ typedef enum mpls_eos_bit_t_
     [MPLS_EOS] = "eos",                                \
 }
 
+/**
+ * The Default TTL added to MPLS label headers when no other value is available
+ */
+#define MPLS_LABEL_DEFAULT_TTL 64
+
+/**
+ * The Default EXP added to MPLS label headers when no other value is available
+ */
+#define MPLS_LABEL_DEFAULT_EXP 0
+
+/**
+ * When in uniform mode convert an IPv[46] DSCP value to an MPLS EXP value
+ */
+static inline u8 ip_dscp_to_mpls_exp (ip_dscp_t tos)
+{
+    return (tos >> 5);
+}
+
+/**
+ * When in uniform mode convert an MPLS EXP value to an IPv[46] DSCP value
+ */
+static inline u8 mpls_exp_to_ip_dscp (u8 exp)
+{
+    return (exp << 5);
+}
+
 #define FOR_EACH_MPLS_EOS_BIT(_eos) \
     for (_eos = MPLS_NON_EOS; _eos <= MPLS_EOS; _eos++)