264 lines
5.7 KiB
C
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
|
|
****************************************************************************
|
|
*/
|