Print this page
Support route deletion entries in SVP_R_LOG_ACK.
        
*** 560,569 ****
--- 560,597 ----
                  }
          }
  }
  
  void
+ libvarpd_route_flush(varpd_provider_handle_t *vph, uint8_t *srcip,
+     uint8_t *dstip, uint8_t src_prefixlen, uint8_t dst_prefixlen,
+     uint16_t vlan_id)
+ {
+         varpd_instance_t *inst = (varpd_instance_t *)vph;
+         varpd_impl_t *vip = inst->vri_impl;
+         overlay_targ_cache_net_t otcn;
+         overlay_targ_cache_net_entry_t *otcne;
+         int ret;
+ 
+         otcn.otcn_linkid = inst->vri_linkid;
+         otcne = &otcn.otcn_entry;
+         bcopy(srcip, &otcne->otcne_src, sizeof (in6_addr_t));
+         bcopy(dstip, &otcne->otcne_dst, sizeof (in6_addr_t));
+         otcne->otcne_vlan = vlan_id;
+         otcne->otcne_src_prefixlen = src_prefixlen;
+         otcne->otcne_dst_prefixlen = dst_prefixlen;
+ 
+         ret = ioctl(vip->vdi_overlayfd, OVERLAY_TARG_CACHE_REMOVE_NET, &otcn);
+         if (ret != 0) {
+                 /* XXX KEBE ASKS, any harmless error cases? */
+                 libvarpd_panic("received bad errno from "
+                     "OVERLAY_TARG_CACHE_REMOVE_NET: %d - %s", errno,
+                     strerror(errno));
+         }
+ }
+ 
+ void
  libvarpd_fma_degrade(varpd_provider_handle_t *vph, const char *msg)
  {
          int ret;
          varpd_instance_t *inst = (varpd_instance_t *)vph;