fib: Set the GLEAN flag on attached export routes so that the SAS works
[vpp.git] / src / vnet / interface_output.h
index 6b766d3..15b0a1d 100644 (file)
@@ -44,7 +44,8 @@
 
 static_always_inline void
 vnet_calc_ip4_checksums (vlib_main_t *vm, vlib_buffer_t *b, ip4_header_t *ip4,
-                        tcp_header_t *th, udp_header_t *uh, u32 oflags)
+                        tcp_header_t *th, udp_header_t *uh,
+                        vnet_buffer_oflags_t oflags)
 {
   if (oflags & VNET_BUFFER_OFFLOAD_F_IP_CKSUM)
     ip4->checksum = ip4_header_checksum (ip4);
@@ -62,7 +63,8 @@ vnet_calc_ip4_checksums (vlib_main_t *vm, vlib_buffer_t *b, ip4_header_t *ip4,
 
 static_always_inline void
 vnet_calc_ip6_checksums (vlib_main_t *vm, vlib_buffer_t *b, ip6_header_t *ip6,
-                        tcp_header_t *th, udp_header_t *uh, u32 oflags)
+                        tcp_header_t *th, udp_header_t *uh,
+                        vnet_buffer_oflags_t oflags)
 {
   int bogus;
   if (oflags & VNET_BUFFER_OFFLOAD_F_TCP_CKSUM)
@@ -85,7 +87,10 @@ vnet_calc_checksums_inline (vlib_main_t * vm, vlib_buffer_t * b,
   ip6_header_t *ip6;
   tcp_header_t *th;
   udp_header_t *uh;
-  u32 oflags = vnet_buffer2 (b)->oflags;
+  vnet_buffer_oflags_t oflags;
+
+  if (!(b->flags & VNET_BUFFER_F_OFFLOAD))
+    return;
 
   ASSERT (!(is_ip4 && is_ip6));
 
@@ -93,6 +98,7 @@ vnet_calc_checksums_inline (vlib_main_t * vm, vlib_buffer_t * b,
   ip6 = (ip6_header_t *) (b->data + vnet_buffer (b)->l3_hdr_offset);
   th = (tcp_header_t *) (b->data + vnet_buffer (b)->l4_hdr_offset);
   uh = (udp_header_t *) (b->data + vnet_buffer (b)->l4_hdr_offset);
+  oflags = vnet_buffer (b)->oflags;
 
   if (is_ip4)
     {