Print this page
Support route deletion entries in SVP_R_LOG_ACK.
@@ -560,10 +560,38 @@
}
}
}
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;