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

264 lines
5.7 KiB
C

/* ipmipfa_agent.h - ipmipfa_agent.h */
/*
******************************************************************************
* HEADER FILE
*
* Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipmipfa_agent.h,v $ $Revision: 1.16 $
* $Source: /home/interpeak/CVSRoot/ipmipfa/src/ipmipfa_agent.h,v $
* $Author: jhorteli $ $Date: 2009-03-31 14:57:58 $
* $State: Exp $ $Locker: $
*
* INTERPEAK_COPYRIGHT_STRING
* Design and implementation by Joel Hortelius <joel.hortelius@interpeak.se>
******************************************************************************
*/
#ifndef IPMIPFA_AGENT_H
#define IPMIPFA_AGENT_H
/*
****************************************************************************
* 1 DESCRIPTION
****************************************************************************
*/
/*
DESCRIPTION
No description currently provided
*/
/*
****************************************************************************
* 2 CONFIGURATION
****************************************************************************
*/
/*
****************************************************************************
* 3 INCLUDE FILES
****************************************************************************
*/
#include "ipmipfa_if.h"
#ifdef __cplusplus
extern "C" {
#endif
/*
****************************************************************************
* 4 DEFINES
****************************************************************************
*/
#define IPMIPFA_CONF_CHALLENGE_EXTSIZE (IPMIPFA_CONF_CHALLENGE_LEN + IPMIP4_MSGEXT_SHDR_HDR_SIZE)
/*
****************************************************************************
* 5 TYPES
****************************************************************************
*/
struct Ipmipfa_fa;
struct Ipmipfa_node;
struct Ipmipfa_iff;
struct Ipmipfa_data;
struct Ipmipfa_pktbuf;
/*
****************************************************************************
* 6 FUNCTIONS
****************************************************************************
*/
/*******************************************************************************
*
* ipmipfa_agent_challenge_build - ipmipfa_agent_challenge_build
*
* Create a challenge extension.
*
* Parameters:
* \is
* \i data
* Context
* \i proc
* Process
* \i iff
* The interface to build the challenge for.
* \i node
* The node if it's directed to it.
* \i buf
* The extension we're building.
* \i icmp
* Is it an ICMP or UDP extension.
* \ie
*
* RETURNS: No return value
*
* ERRNO:
*
* \NOMANUAL
*/
IP_GLOBAL void ipmipfa_agent_challenge_build
(
struct Ipmipfa_data *data,
struct Ipmip_proc *proc,
struct Ipmipfa_iff *iff,
struct Ipmipfa_node *node,
Ipmip_buffer_t *buf,
Ip_bool icmp
);
/*******************************************************************************
*
* ipmipfa_agent_solicitation_build - ipmipfa_agent_solicitation_build
*
* Build solicitation
*
* Parameters:
* \is
* \i adv
* The buffer to build the solicitation in.
* \i lla
* Optional extension
* \ie
*
* RETURNS: IP_TRUE on success
*
* ERRNO:
*
* \NOMANUAL
*/
IP_GLOBAL Ip_bool ipmipfa_agent_solicitation_build
(
Ipmip_buffer_t *adv,
Ipmip_lladdr_t *lladdr
);
/*******************************************************************************
*
* ipmipfa_agent_advert_output - ipmipfa_agent_advert_output
*
* Write an ordinary multicast/unicast advertisement
*
* Parameters:
* \is
* \i data
* The context
* \i proc
* Current process
* \i iff
* The interface to send the advertisment from.
* \i node
* Unicast directed node
* \i dst
* If specified, unicast dst address
* \i lla
* If specified, unicast LLA address
* \i revoke
* Revocation advertisement.
* \ie
*
* RETURNS: No return value
*
* ERRNO:
*
* \NOMANUAL
*/
IP_GLOBAL void ipmipfa_agent_advert_output
(
struct Ipmipfa_data *data,
struct Ipmip_proc *proc,
struct Ipmipfa_iff *iff,
struct Ipmipfa_node *node,
Ip_addr4 *dst,
Ipmip_lladdr_t *lla,
Ip_bool revoke
);
/*******************************************************************************
*
* ipmipfa_adv_recv - ipmipfa_adv_recv
*
* Handles incoming advertisements or solicitations
*
* Parameters:
* \is
* \i data
* Context
* \i proc
* Current process.
* \i pbuf
* Packet buffer
* \ie
*
* RETURNS: No return value
*
* ERRNO:
*
* \NOMANUAL
*/
IP_GLOBAL void ipmipfa_adv_recv
(
struct Ipmipfa_data *data,
struct Ipmip_proc *proc,
struct Ipmipfa_pktbuf *pbuf
);
/*******************************************************************************
*
* ipmipfa_agent_advert_build - ipmipfa_agent_advert_build
*
* Create an advertisement.
*
* Parameters:
* \is
* \i data
* Context
* \i proc
* Process
* \i adv
* The buffer to create the advertisement in.
* \i iff
* The interface for which we create the buffer.
* \i node
* Node we're sending a solicited advertisement to.
* \i lla_ext
* Append the interfaces LLA extension
* \i revoke
* Revocation request
* \ie
*
* RETURNS: IP_TRUE on success.
*
* ERRNO:
*
* \NOMANUAL
*/
IP_GLOBAL Ip_bool ipmipfa_agent_advert_build
(
struct Ipmipfa_data *data,
struct Ipmip_proc *proc,
Ipmip_buffer_t *adv,
struct Ipmipfa_iff *iff,
struct Ipmipfa_node *node,
Ip_bool lla_ext,
Ip_bool revoke
);
#ifdef __cplusplus
}
#endif
#endif
/*
****************************************************************************
* END OF FILE
****************************************************************************
*/