Files
m241Neelima/components/ip_net2-6.9/vxcompat/src/m2IcmpLib.c
T
2026-07-30 11:19:44 +05:30

168 lines
5.3 KiB
C

/* m2IcmpLib.c - MIB-II ICMP-group API for SNMP Agents */
/* Copyright 1984 - 2005 Wind River Systems, Inc. */
#include "copyright_wrs.h"
/*
modification history
--------------------
01l,18aug10,h_x Fix WIND00226752
01k,28mar08,zhr Migrated to IPNET
01j,12jan05,vvv osdep.h cleanup
01i,06nov03,rlm Ran batch header update for header re-org.
01h,08sep03,vvv merged from ACCORDION_BASE6_MERGE_BASELINE
01g,16may02,ant integration into Clarinet
01f,26oct01,spm isolated virtual stack data structures (SPR #71092)
01e,29mar01,spm merged changes from version 01d of tor2_0.open_stack
branch (wpwr VOB, base 01c) for unified code base
01d,25oct00,ham doc: cleanup for vxWorks AE 1.0.
01c,25jan95,jdi doc cleanup.
01b,11nov94,rhp edited man pages
01a,08dec93,jag written
*/
/*
DESCRIPTION
This library provides MIB-II services for the ICMP group. It provides routines
to initialize the group, and to access the group scalar variables. For a
broader description of MIB-II services, see the manual entry for m2Lib.
To use this feature, include the following component:
INCLUDE_MIB2_ICMP
USING THIS LIBRARY
This library can be initialized and deleted by calling the routines
m2IcmpInit() and m2IcmpDelete() respectively, if only the ICMP group's services
are needed. If full MIB-II support is used, this group and all other
groups can be initialized and deleted by calling m2Init() and
m2Delete().
The group scalar variables are accessed by calling
m2IcmpGroupInfoGet() as follows:
.CS
M2_ICMP icmpVars;
if (m2IcmpGroupInfoGet (&icmpVars) == OK)
/@ values in icmpVars are valid @/
.CE
INCLUDE FILES: m2Lib.h
SEE ALSO:
m2Lib, m2IfLib, m2IpLib, m2TcpLib, m2SysLib
*/
/* includes */
#include <m2Lib.h>
#include "errnoLib.h"
#include "vwModNum.h"
#include "in.h"
#include <ipcom_mib2_api.h>
#include <ipcom_type.h>
/*******************************************************************************
*
* m2IcmpInit - initialize MIB-II ICMP-group access
*
* This routine allocates the resources needed to allow access to the MIB-II
* ICMP-group variables. This routine must be called before any ICMP variables
* can be accessed.
*
* RETURNS: OK, always.
*
* SEE ALSO: m2IcmpGroupInfoGet(), m2IcmpDelete()
*/
STATUS m2IcmpInit (void)
{
return (OK);
}
/******************************************************************************
*
* m2IcmpGroupInfoGet - get the MIB-II ICMP-group global variables
*
* This routine fills in the ICMP structure at <pIcmpInfo> with the
* MIB-II ICMP scalar variables.
*
* RETURNS: OK, or ERROR if the input parameter <pIcmpInfo> is invalid.
*
* ERRNO:
* S_m2Lib_INVALID_PARAMETER
*
* SEE ALSO: m2IcmpInit(), m2IcmpDelete()
*/
STATUS m2IcmpGroupInfoGet
(
M2_ICMP * pIcmpInfo /* pointer to the ICMP group structure */
)
{
#ifdef IPCOM_USE_INET
Ipcom_mib2_icmp_group icmpGroup;
if (ipcom_mib2_get_icmp_group (&icmpGroup) == -1)
{
return (ERROR);
}
/* Validate Pointer to ICMP structure */
if (pIcmpInfo == NULL)
{
errnoSet (S_m2Lib_INVALID_PARAMETER);
return (ERROR);
}
/* Add the counts of all the packet types Sent and Received */
pIcmpInfo->icmpInMsgs = icmpGroup.icmpInMsgs;
pIcmpInfo->icmpOutMsgs = icmpGroup.icmpOutMsgs;
/* Add to the Input count the ICMP packets received in error */
pIcmpInfo->icmpInErrors = icmpGroup.icmpInErrors;
pIcmpInfo->icmpInDestUnreachs = icmpGroup.icmpInDestUnreachs;
pIcmpInfo->icmpInTimeExcds = icmpGroup.icmpInTimeExcds;
pIcmpInfo->icmpInParmProbs = icmpGroup.icmpInParmProbs;
pIcmpInfo->icmpInSrcQuenchs = icmpGroup.icmpInSrcQuenchs;
pIcmpInfo->icmpInRedirects = icmpGroup.icmpInRedirects;
pIcmpInfo->icmpInEchos = icmpGroup.icmpInEchos;
pIcmpInfo->icmpInEchoReps = icmpGroup.icmpInEchoReps;
pIcmpInfo->icmpInTimestamps = icmpGroup.icmpInTimestamps;
pIcmpInfo->icmpInTimestampReps = icmpGroup.icmpInTimestampReps;
pIcmpInfo->icmpInAddrMasks = icmpGroup.icmpInAddrMasks;
pIcmpInfo->icmpInAddrMaskReps = icmpGroup.icmpInAddrMaskReps;
pIcmpInfo->icmpOutErrors = icmpGroup.icmpOutErrors;
pIcmpInfo->icmpOutDestUnreachs = icmpGroup.icmpOutDestUnreachs;
pIcmpInfo->icmpOutTimeExcds = icmpGroup.icmpOutTimeExcds;
pIcmpInfo->icmpOutParmProbs = icmpGroup.icmpOutParmProbs;
pIcmpInfo->icmpOutSrcQuenchs = icmpGroup.icmpOutSrcQuenchs;
pIcmpInfo->icmpOutRedirects = icmpGroup.icmpOutRedirects;
pIcmpInfo->icmpOutEchos = icmpGroup.icmpOutEchos;
pIcmpInfo->icmpOutEchoReps = icmpGroup.icmpOutEchoReps;
pIcmpInfo->icmpOutTimestamps = icmpGroup.icmpOutTimestamps;
pIcmpInfo->icmpOutTimestampReps = icmpGroup.icmpOutTimestampReps;
pIcmpInfo->icmpOutAddrMasks = icmpGroup.icmpOutAddrMasks;
pIcmpInfo->icmpOutAddrMaskReps = icmpGroup.icmpOutAddrMaskReps;
#endif
return (OK);
}
/*******************************************************************************
*
* m2IcmpDelete - delete all resources used to access the ICMP group
*
* This routine frees all the resources allocated at the time the ICMP group was
* initialized. The ICMP group should not be accessed after this routine has
* been called.
*
* RETURNS: OK, always.
*
* SEE ALSO: m2IcmpInit(), m2IcmpGroupInfoGet()
*/
STATUS m2IcmpDelete (void)
{
return (OK);
}