+
+static void
+interface_notify_entity(const char * if_name, const char * type, CFStringRef entity)
+{
+ CFStringRef if_name_cf;
+ CFStringRef key;
+
+ if_name_cf = CFStringCreateWithCString(NULL, if_name,
+ kCFStringEncodingASCII);
+ key = SCDynamicStoreKeyCreateNetworkInterfaceEntity(NULL,
+ kSCDynamicStoreDomainState,
+ if_name_cf,
+ entity);
+ CFRelease(if_name_cf);
+ SC_log(LOG_DEBUG, "Post %s: %@", type, key);
+ SCDynamicStoreNotifyValue(store, key);
+ CFRelease(key);
+ return;
+}
+
+__private_extern__ void
+ipv4_router_arp_failure(const char * if_name)
+{
+ interface_notify_entity(if_name, "Router ARP failure", kSCEntNetIPv4RouterARPFailure);
+ return;
+}
+
+__private_extern__ void
+ipv4_router_arp_alive(const char * if_name)
+{
+ interface_notify_entity(if_name, "Router ARP alive", kSCEntNetIPv4RouterARPAlive);
+ return;
+}