diff options
Diffstat (limited to 'usr.sbin/atm/atmarpd/atmarp_timer.c')
-rw-r--r-- | usr.sbin/atm/atmarpd/atmarp_timer.c | 229 |
1 files changed, 0 insertions, 229 deletions
diff --git a/usr.sbin/atm/atmarpd/atmarp_timer.c b/usr.sbin/atm/atmarpd/atmarp_timer.c deleted file mode 100644 index c1c6cd95c6d8..000000000000 --- a/usr.sbin/atm/atmarpd/atmarp_timer.c +++ /dev/null @@ -1,229 +0,0 @@ -/* - * - * =================================== - * HARP | Host ATM Research Platform - * =================================== - * - * - * This Host ATM Research Platform ("HARP") file (the "Software") is - * made available by Network Computing Services, Inc. ("NetworkCS") - * "AS IS". NetworkCS does not provide maintenance, improvements or - * support of any kind. - * - * NETWORKCS MAKES NO WARRANTIES OR REPRESENTATIONS, EXPRESS OR IMPLIED, - * INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE, AS TO ANY ELEMENT OF THE - * SOFTWARE OR ANY SUPPORT PROVIDED IN CONNECTION WITH THIS SOFTWARE. - * In no event shall NetworkCS be responsible for any damages, including - * but not limited to consequential damages, arising from or relating to - * any use of the Software or related support. - * - * Copyright 1994-1998 Network Computing Services, Inc. - * - * Copies of this Software may be made, however, the above copyright - * notice must be reproduced on all copies. - * - * @(#) $FreeBSD$ - * - */ - -/* - * Server Cache Synchronization Protocol (SCSP) Support - * ---------------------------------------------------- - * - * SCSP-ATMARP server interface: timer routines - * - */ - -#include <sys/types.h> -#include <sys/param.h> -#include <sys/socket.h> -#include <net/if.h> -#include <netinet/in.h> -#include <netatm/port.h> -#include <netatm/queue.h> -#include <netatm/atm.h> -#include <netatm/atm_if.h> -#include <netatm/atm_sap.h> -#include <netatm/atm_sys.h> -#include <netatm/atm_ioctl.h> - -#include <errno.h> -#include <libatm.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <syslog.h> - -#include "../scspd/scsp_msg.h" -#include "../scspd/scsp_if.h" -#include "../scspd/scsp_var.h" -#include "atmarp_var.h" - -#ifndef lint -__RCSID("@(#) $FreeBSD$"); -#endif - - -/* - * Cache update timeout processing - * - * When the cache update timer fires, we read the cache from the - * kernel, update the internal cache, and restart the timer. - * - * Arguments: - * tp pointer to a HARP timer block - * - * Returns: - * None - * - */ -void -atmarp_cache_timeout(tp) - Harp_timer *tp; -{ - Atmarp_intf *aip; - - /* - * Verify the status of all configured interfaces - */ - for (aip = atmarp_intf_head; aip; aip = aip->ai_next) { - if (atmarp_if_ready(aip)) { - /* - * The interface is up but we don't have - * a connection to SCSP--make a connection - */ - if (aip->ai_state == AI_STATE_NULL) - (void)atmarp_scsp_connect(aip); - } else { - /* - * The interface is down--disconnect from SCSP - */ - if (aip->ai_state != AI_STATE_NULL) - (void)atmarp_scsp_disconnect(aip); - } - } - - /* - * Read the cache from the kernel - */ - atmarp_get_updated_cache(); - - /* - * Restart the cache update timer - */ - HARP_TIMER(tp, ATMARP_CACHE_INTERVAL, atmarp_cache_timeout); -} - - -/* - * Permanent cache entry timer processing - * - * Permanent cache entries (entries that are administratively added - * and the entry for the server itself) don't ever get refreshed, so - * we broadcast updates for them every 10 minutes so they won't get - * deleted from the remote servers' caches - * - * Arguments: - * tp pointer to a HARP timer block - * - * Returns: - * None - * - */ -void -atmarp_perm_timeout(tp) - Harp_timer *tp; -{ - int i, rc; - Atmarp_intf *aip; - Atmarp *aap; - - /* - * Loop through all interfaces - */ - for (aip = atmarp_intf_head; aip; aip = aip->ai_next) { - /* - * Loop through the interface's cache - */ - for (i = 0; i < ATMARP_HASHSIZ; i++) { - for (aap = aip->ai_arptbl[i]; aap; - aap = aap->aa_next) { - /* - * Find and update permanent entries - */ - if ((aap->aa_flags & (AAF_PERM | - AAF_SERVER)) != 0) { - aap->aa_seq++; - rc = atmarp_scsp_update(aap, - SCSP_ASTATE_UPD); - } - } - } - } - - /* - * Restart the permanent cache entry timer - */ - HARP_TIMER(tp, ATMARP_PERM_INTERVAL, atmarp_perm_timeout); -} - - -/* - * Keepalive timeout processing - * - * When the keepalive timer fires, we send a NOP to SCSP. This - * will help us detect a broken connection. - * - * Arguments: - * tp pointer to a HARP timer block - * - * Returns: - * None - * - */ -void -atmarp_keepalive_timeout(tp) - Harp_timer *tp; -{ - Atmarp_intf *aip; - Scsp_if_msg *msg; - - /* - * Back off to start of DCS entry - */ - aip = (Atmarp_intf *) ((caddr_t)tp - - (int)(&((Atmarp_intf *)0)->ai_keepalive_t)); - - /* - * Get a message buffer - * - * XXX arr: Previously, the check on the returned value from - * the memory allocation routine was checked and _nothing_ - * resulted from the check (which would cause problems since - * the bzero() of NULL is not fun). At the moment, I am having - * it soley return -- this should be reviewed again soon. - */ - msg = calloc(1, sizeof(Scsp_if_msg)); - if (msg == NULL) - return; - - /* - * Build a NOP message - */ - msg->si_type = SCSP_NOP_REQ; - msg->si_proto = SCSP_PROTO_ATMARP; - msg->si_len = sizeof(Scsp_if_msg_hdr); - - /* - * Send the message to SCSP - */ - (void)atmarp_scsp_out(aip, (char *)msg, msg->si_len); - free(msg); - - /* - * Restart the keepalive timer - */ - HARP_TIMER(&aip->ai_keepalive_t, ATMARP_KEEPALIVE_INTERVAL, - atmarp_keepalive_timeout); -} |