Files
m241Neelima/components/ip_net2-6.9/ipnet2/src/ipnet_vrrp.h
T
2026-07-30 11:19:44 +05:30

121 lines
3.7 KiB
C

/*
******************************************************************************
* INTERPEAK API HEADER FILE
*
* Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipnet_vrrp.h,v $ $Revision: 1.3.10.3 $
* $Source: /home/interpeak/CVSRoot/ipnet2/src/ipnet_vrrp.h,v $
* $Author: jren $ $Date: 2015-02-28 08:46:30 $
* $State: Exp $ $Locker: $
*
* INTERPEAK_COPYRIGHT_STRING
* Design and implementation by Kenneth Jonsson <kenneth@interpeak.se>
******************************************************************************
*/
#ifndef IPNET_VRRP_H
#define IPNET_VRRP_H
/*
****************************************************************************
* 1 DESCRIPTION
****************************************************************************
* Implementation of RFC3768 - Virtual Router Redundancy Protocol (VRRP)
* This file contains helper functions used within the stack.
*/
/*
****************************************************************************
* 2 CONFIGURATION
****************************************************************************
*/
#include "ipnet_config.h"
/*
****************************************************************************
* 3 INCLUDE FILES
****************************************************************************
*/
#include <ipcom_cstyle.h>
#include <ipcom_sock.h>
#include <ipcom_type.h>
#include "ipnet_neigh.h"
#ifdef __cplusplus
extern "C" {
#endif
/*
****************************************************************************
* 4 DEFINES
****************************************************************************
*/
/*
****************************************************************************
* 5 TYPES
****************************************************************************
*/
enum Ipnet_eth_vrrp_macaddr_type {
/* Not a VRRP mac address */
IPNET_NOT_VRRP_MAC_ADDRESS = 0,
/* an ipv4 VRRP mac address */
IPNET_IPV4_VRRP_MAC_ADDRESS,
/* an ipv6 VRRP mac address */
IPNET_IPV6_VRRP_MAC_ADDRESS
};
/* VRRP interface link up/down event cmd */
#define IPNET_VRRPD_INTERFACE_LINK_UP 1
#define IPNET_VRRPD_INTERFACE_LINK_DOWN 2
/*
*===========================================================================
* Ipnet_vrrp_info
*===========================================================================
*/
typedef struct Ipnet_vrrp_info_struct
{
char ifname[IP_IFNAMSIZ + 1]; /* Interface name */
Ip_u8 event;
}
Ipnet_vrrp_info;
/*
* Link layer specific destructor for a VRRP address.
*/
typedef void (*Ipnet_vrrp_addr_dtor)(const Ipnet_neigh *);
/*
****************************************************************************
* 6 FUNCTIONS
****************************************************************************
*/
IP_GLOBAL Ip_bool ipnet_vrrp_vrid_active(Ipnet_netif *netif, Ip_u8 vrid, int domain);
IP_GLOBAL Ip_u8 ipnet_vrrp_addr_vrid(Ipnet_netif *netif, void *addr, int domain);
IP_GLOBAL int ipnet_vrrp_add_addr(Ipnet_neigh *neigh, Ip_u8 vrid);
IP_GLOBAL int ipnet_vrrp_del_addr(Ipnet_neigh *neigh, Ip_u8 vrid, Ipnet_vrrp_addr_dtor dtor);
IP_GLOBAL void* ipnet_vrrp_get_addr_with_vrid(Ipnet_netif *netif, Ip_u8 vrid, int domain);
IP_GLOBAL enum Ipnet_eth_vrrp_macaddr_type ipnet_eth_get_vrrp_mac_addr_type(Ip_u8 *mac);
IP_GLOBAL void ipnet_vrrp_kioevent(char *ifname, int event, int vr);
#ifdef __cplusplus
}
#endif
#endif
/*
****************************************************************************
* END OF FILE
****************************************************************************
*/