blob: 3ba51d7dc49108a5245fbb082d4d5918ae1933ce [file] [log] [blame]
/*
* Note: this file originally auto-generated by mib2c using
* version : 12088 $ of $
*
* $Id:$
*/
/*
* standard Net-SNMP includes
*/
#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
/*
* include our parent header
*/
#include "etherStatsTable.h"
/** @defgroup data_get data_get: Routines to get data
*
* TODO:230:M: Implement etherStatsTable get routines.
* TODO:240:M: Implement etherStatsTable mapping routines (if any).
*
* These routine are used to get the value for individual objects. The
* row context is passed, along with a pointer to the memory where the
* value should be copied.
*
* @{
*/
/**********************************************************************
**********************************************************************
***
*** Table etherStatsTable
***
**********************************************************************
**********************************************************************/
/*
* RMON-MIB::etherStatsTable is subid 1 of statistics.
* Its status is Current.
* OID: .1.3.6.1.2.1.16.1.1, length: 9
*/
/*
* ---------------------------------------------------------------------
* * TODO:200:r: Implement etherStatsTable data context functions.
*/
/**
* set mib index(es)
*
* @param tbl_idx mib index structure
* @param etherStatsIndex_val
*
* @retval MFD_SUCCESS : success.
* @retval MFD_ERROR : other error.
*
* @remark
* This convenience function is useful for setting all the MIB index
* components with a single function call. It is assume that the C values
* have already been mapped from their native/rawformat to the MIB format.
*/
int
etherStatsTable_indexes_set_tbl_idx(etherStatsTable_mib_index * tbl_idx,
long etherStatsIndex_val)
{
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_indexes_set_tbl_idx", "called\n"));
/*
* etherStatsIndex(1)/INTEGER32/ASN_INTEGER/long(long)//l/A/w/e/R/d/h
*/
tbl_idx->etherStatsIndex = etherStatsIndex_val;
return MFD_SUCCESS;
} /* etherStatsTable_indexes_set_tbl_idx */
/**
* @internal
* set row context indexes
*
* @param reqreq_ctx the row context that needs updated indexes
*
* @retval MFD_SUCCESS : success.
* @retval MFD_ERROR : other error.
*
* @remark
* This function sets the mib indexs, then updates the oid indexs
* from the mib index.
*/
int
etherStatsTable_indexes_set(etherStatsTable_rowreq_ctx * rowreq_ctx,
long etherStatsIndex_val)
{
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_indexes_set",
"called\n"));
if (MFD_SUCCESS !=
etherStatsTable_indexes_set_tbl_idx(&rowreq_ctx->tbl_idx,
etherStatsIndex_val))
return MFD_ERROR;
/*
* convert mib index to oid index
*/
rowreq_ctx->oid_idx.len = sizeof(rowreq_ctx->oid_tmp) / sizeof(oid);
if (0 != etherStatsTable_index_to_oid(&rowreq_ctx->oid_idx,
&rowreq_ctx->tbl_idx)) {
return MFD_ERROR;
}
return MFD_SUCCESS;
} /* etherStatsTable_indexes_set */
/*---------------------------------------------------------------------
* RMON-MIB::etherStatsEntry.etherStatsDataSource
* etherStatsDataSource is subid 2 of etherStatsEntry.
* Its status is Current, and its access level is Create.
* OID: .1.3.6.1.2.1.16.1.1.1.2
* Description:
This object identifies the source of the data that
this etherStats entry is configured to analyze. This
source can be any ethernet interface on this device.
In order to identify a particular interface, this object
shall identify the instance of the ifIndex object,
defined in RFC 2233 [17], for the desired interface.
For example, if an entry were to receive data from
interface #1, this object would be set to ifIndex.1.
The statistics in this group reflect all packets
on the local network segment attached to the identified
interface.
An agent may or may not be able to tell if fundamental
changes to the media of the interface have occurred and
necessitate an invalidation of this entry. For example, a
hot-pluggable ethernet card could be pulled out and replaced
by a token-ring card. In such a case, if the agent has such
knowledge of the change, it is recommended that it
invalidate this entry.
This object may not be modified if the associated
etherStatsStatus object is equal to valid(1).
*
* Attributes:
* accessible 1 isscalar 0 enums 0 hasdefval 0
* readable 1 iscolumn 1 ranges 0 hashint 0
* settable 1
*
*
* Its syntax is OBJECTID (based on perltype OBJECTID)
* The net-snmp type is ASN_OBJECT_ID. The C type decl is oid (oid)
* This data type requires a length.
*/
/**
* Extract the current value of the etherStatsDataSource data.
*
* Set a value using the data context for the row.
*
* @param rowreq_ctx
* Pointer to the row request context.
* @param etherStatsDataSource_val_ptr_ptr
* Pointer to storage for a oid variable
* @param etherStatsDataSource_val_ptr_len_ptr
* Pointer to a size_t. On entry, it will contain the size (in bytes)
* pointed to by etherStatsDataSource.
* On exit, this value should contain the data size (in bytes).
*
* @retval MFD_SUCCESS : success
* @retval MFD_SKIP : skip this node (no value for now)
* @retval MFD_ERROR : Any other error
*
* @note If you need more than (*etherStatsDataSource_val_ptr_len_ptr) bytes of memory,
* allocate it using malloc() and update etherStatsDataSource_val_ptr_ptr.
* <b>DO NOT</b> free the previous pointer.
* The MFD helper will release the memory you allocate.
*
* @remark If you call this function yourself, you are responsible
* for checking if the pointer changed, and freeing any
* previously allocated memory. (Not necessary if you pass
* in a pointer to static memory, obviously.)
*/
int
etherStatsDataSource_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
oid ** etherStatsDataSource_val_ptr_ptr,
size_t *etherStatsDataSource_val_ptr_len_ptr)
{
/** we should have a non-NULL pointer and enough storage */
netsnmp_assert((NULL != etherStatsDataSource_val_ptr_ptr)
&& (NULL != *etherStatsDataSource_val_ptr_ptr));
netsnmp_assert(NULL != etherStatsDataSource_val_ptr_len_ptr);
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsDataSource_get",
"called\n"));
netsnmp_assert(NULL != rowreq_ctx);
/*
* TODO:231:o: |-> Extract the current value of the etherStatsDataSource data.
* copy (* etherStatsDataSource_val_ptr_ptr ) data and (* etherStatsDataSource_val_ptr_len_ptr ) from rowreq_ctx->data
*/
/*
* make sure there is enough space for etherStatsDataSource data
*/
if ((NULL == (*etherStatsDataSource_val_ptr_ptr)) ||
((*etherStatsDataSource_val_ptr_len_ptr) <
(rowreq_ctx->data.etherStatsDataSource_len *
sizeof(rowreq_ctx->data.etherStatsDataSource[0])))) {
/*
* allocate space for etherStatsDataSource data
*/
(*etherStatsDataSource_val_ptr_ptr) =
malloc(rowreq_ctx->data.etherStatsDataSource_len *
sizeof(rowreq_ctx->data.etherStatsDataSource[0]));
if (NULL == (*etherStatsDataSource_val_ptr_ptr)) {
snmp_log(LOG_ERR, "could not allocate memory\n");
return MFD_ERROR;
}
}
(*etherStatsDataSource_val_ptr_len_ptr) =
rowreq_ctx->data.etherStatsDataSource_len *
sizeof(rowreq_ctx->data.etherStatsDataSource[0]);
memcpy((*etherStatsDataSource_val_ptr_ptr),
rowreq_ctx->data.etherStatsDataSource,
rowreq_ctx->data.etherStatsDataSource_len *
sizeof(rowreq_ctx->data.etherStatsDataSource[0]));
return MFD_SUCCESS;
} /* etherStatsDataSource_get */
/*---------------------------------------------------------------------
* RMON-MIB::etherStatsEntry.etherStatsDropEvents
* etherStatsDropEvents is subid 3 of etherStatsEntry.
* Its status is Current, and its access level is ReadOnly.
* OID: .1.3.6.1.2.1.16.1.1.1.3
* Description:
The total number of events in which packets
were dropped by the probe due to lack of resources.
Note that this number is not necessarily the number of
packets dropped; it is just the number of times this
condition has been detected.
*
* Attributes:
* accessible 1 isscalar 0 enums 0 hasdefval 0
* readable 1 iscolumn 1 ranges 0 hashint 0
* settable 0
*
*
* Its syntax is COUNTER (based on perltype COUNTER)
* The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
*/
/**
* Extract the current value of the etherStatsDropEvents data.
*
* Set a value using the data context for the row.
*
* @param rowreq_ctx
* Pointer to the row request context.
* @param etherStatsDropEvents_val_ptr
* Pointer to storage for a u_long variable
*
* @retval MFD_SUCCESS : success
* @retval MFD_SKIP : skip this node (no value for now)
* @retval MFD_ERROR : Any other error
*/
int
etherStatsDropEvents_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
u_long * etherStatsDropEvents_val_ptr)
{
/** we should have a non-NULL pointer */
netsnmp_assert(NULL != etherStatsDropEvents_val_ptr);
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsDropEvents_get",
"called\n"));
netsnmp_assert(NULL != rowreq_ctx);
/*
* TODO:231:o: |-> Extract the current value of the etherStatsDropEvents data.
* copy (* etherStatsDropEvents_val_ptr ) from rowreq_ctx->data
*/
(*etherStatsDropEvents_val_ptr) =
rowreq_ctx->data.etherStatsDropEvents;
return MFD_SUCCESS;
} /* etherStatsDropEvents_get */
/*---------------------------------------------------------------------
* RMON-MIB::etherStatsEntry.etherStatsOctets
* etherStatsOctets is subid 4 of etherStatsEntry.
* Its status is Current, and its access level is ReadOnly.
* OID: .1.3.6.1.2.1.16.1.1.1.4
* Description:
The total number of octets of data (including
those in bad packets) received on the
network (excluding framing bits but including
FCS octets).
This object can be used as a reasonable estimate of
10-Megabit ethernet utilization. If greater precision is
desired, the etherStatsPkts and etherStatsOctets objects
should be sampled before and after a common interval. The
differences in the sampled values are Pkts and Octets,
respectively, and the number of seconds in the interval is
Interval. These values are used to calculate the Utilization
as follows:
Pkts * (9.6 + 6.4) + (Octets * .8)
Utilization = -------------------------------------
Interval * 10,000
The result of this equation is the value Utilization which
is the percent utilization of the ethernet segment on a
scale of 0 to 100 percent.
*
* Attributes:
* accessible 1 isscalar 0 enums 0 hasdefval 0
* readable 1 iscolumn 1 ranges 0 hashint 0
* settable 0
*
*
* Its syntax is COUNTER (based on perltype COUNTER)
* The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
*/
/**
* Extract the current value of the etherStatsOctets data.
*
* Set a value using the data context for the row.
*
* @param rowreq_ctx
* Pointer to the row request context.
* @param etherStatsOctets_val_ptr
* Pointer to storage for a u_long variable
*
* @retval MFD_SUCCESS : success
* @retval MFD_SKIP : skip this node (no value for now)
* @retval MFD_ERROR : Any other error
*/
int
etherStatsOctets_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
u_long * etherStatsOctets_val_ptr)
{
/** we should have a non-NULL pointer */
netsnmp_assert(NULL != etherStatsOctets_val_ptr);
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsOctets_get",
"called\n"));
netsnmp_assert(NULL != rowreq_ctx);
/*
* TODO:231:o: |-> Extract the current value of the etherStatsOctets data.
* copy (* etherStatsOctets_val_ptr ) from rowreq_ctx->data
*/
(*etherStatsOctets_val_ptr) = rowreq_ctx->data.etherStatsOctets;
return MFD_SUCCESS;
} /* etherStatsOctets_get */
/*---------------------------------------------------------------------
* RMON-MIB::etherStatsEntry.etherStatsPkts
* etherStatsPkts is subid 5 of etherStatsEntry.
* Its status is Current, and its access level is ReadOnly.
* OID: .1.3.6.1.2.1.16.1.1.1.5
* Description:
The total number of packets (including bad packets,
broadcast packets, and multicast packets) received.
*
* Attributes:
* accessible 1 isscalar 0 enums 0 hasdefval 0
* readable 1 iscolumn 1 ranges 0 hashint 0
* settable 0
*
*
* Its syntax is COUNTER (based on perltype COUNTER)
* The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
*/
/**
* Extract the current value of the etherStatsPkts data.
*
* Set a value using the data context for the row.
*
* @param rowreq_ctx
* Pointer to the row request context.
* @param etherStatsPkts_val_ptr
* Pointer to storage for a u_long variable
*
* @retval MFD_SUCCESS : success
* @retval MFD_SKIP : skip this node (no value for now)
* @retval MFD_ERROR : Any other error
*/
int
etherStatsPkts_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
u_long * etherStatsPkts_val_ptr)
{
/** we should have a non-NULL pointer */
netsnmp_assert(NULL != etherStatsPkts_val_ptr);
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsPkts_get", "called\n"));
netsnmp_assert(NULL != rowreq_ctx);
/*
* TODO:231:o: |-> Extract the current value of the etherStatsPkts data.
* copy (* etherStatsPkts_val_ptr ) from rowreq_ctx->data
*/
(*etherStatsPkts_val_ptr) = rowreq_ctx->data.etherStatsPkts;
return MFD_SUCCESS;
} /* etherStatsPkts_get */
/*---------------------------------------------------------------------
* RMON-MIB::etherStatsEntry.etherStatsBroadcastPkts
* etherStatsBroadcastPkts is subid 6 of etherStatsEntry.
* Its status is Current, and its access level is ReadOnly.
* OID: .1.3.6.1.2.1.16.1.1.1.6
* Description:
The total number of good packets received that were
directed to the broadcast address. Note that this
does not include multicast packets.
*
* Attributes:
* accessible 1 isscalar 0 enums 0 hasdefval 0
* readable 1 iscolumn 1 ranges 0 hashint 0
* settable 0
*
*
* Its syntax is COUNTER (based on perltype COUNTER)
* The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
*/
/**
* Extract the current value of the etherStatsBroadcastPkts data.
*
* Set a value using the data context for the row.
*
* @param rowreq_ctx
* Pointer to the row request context.
* @param etherStatsBroadcastPkts_val_ptr
* Pointer to storage for a u_long variable
*
* @retval MFD_SUCCESS : success
* @retval MFD_SKIP : skip this node (no value for now)
* @retval MFD_ERROR : Any other error
*/
int
etherStatsBroadcastPkts_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
u_long * etherStatsBroadcastPkts_val_ptr)
{
/** we should have a non-NULL pointer */
netsnmp_assert(NULL != etherStatsBroadcastPkts_val_ptr);
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsBroadcastPkts_get",
"called\n"));
netsnmp_assert(NULL != rowreq_ctx);
/*
* TODO:231:o: |-> Extract the current value of the etherStatsBroadcastPkts data.
* copy (* etherStatsBroadcastPkts_val_ptr ) from rowreq_ctx->data
*/
(*etherStatsBroadcastPkts_val_ptr) =
rowreq_ctx->data.etherStatsBroadcastPkts;
return MFD_SUCCESS;
} /* etherStatsBroadcastPkts_get */
/*---------------------------------------------------------------------
* RMON-MIB::etherStatsEntry.etherStatsMulticastPkts
* etherStatsMulticastPkts is subid 7 of etherStatsEntry.
* Its status is Current, and its access level is ReadOnly.
* OID: .1.3.6.1.2.1.16.1.1.1.7
* Description:
The total number of good packets received that were
directed to a multicast address. Note that this number
does not include packets directed to the broadcast
address.
*
* Attributes:
* accessible 1 isscalar 0 enums 0 hasdefval 0
* readable 1 iscolumn 1 ranges 0 hashint 0
* settable 0
*
*
* Its syntax is COUNTER (based on perltype COUNTER)
* The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
*/
/**
* Extract the current value of the etherStatsMulticastPkts data.
*
* Set a value using the data context for the row.
*
* @param rowreq_ctx
* Pointer to the row request context.
* @param etherStatsMulticastPkts_val_ptr
* Pointer to storage for a u_long variable
*
* @retval MFD_SUCCESS : success
* @retval MFD_SKIP : skip this node (no value for now)
* @retval MFD_ERROR : Any other error
*/
int
etherStatsMulticastPkts_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
u_long * etherStatsMulticastPkts_val_ptr)
{
/** we should have a non-NULL pointer */
netsnmp_assert(NULL != etherStatsMulticastPkts_val_ptr);
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsMulticastPkts_get",
"called\n"));
netsnmp_assert(NULL != rowreq_ctx);
/*
* TODO:231:o: |-> Extract the current value of the etherStatsMulticastPkts data.
* copy (* etherStatsMulticastPkts_val_ptr ) from rowreq_ctx->data
*/
(*etherStatsMulticastPkts_val_ptr) =
rowreq_ctx->data.etherStatsMulticastPkts;
return MFD_SUCCESS;
} /* etherStatsMulticastPkts_get */
/*---------------------------------------------------------------------
* RMON-MIB::etherStatsEntry.etherStatsCRCAlignErrors
* etherStatsCRCAlignErrors is subid 8 of etherStatsEntry.
* Its status is Current, and its access level is ReadOnly.
* OID: .1.3.6.1.2.1.16.1.1.1.8
* Description:
The total number of packets received that
had a length (excluding framing bits, but
including FCS octets) of between 64 and 1518
octets, inclusive, but had either a bad
Frame Check Sequence (FCS) with an integral
number of octets (FCS Error) or a bad FCS with
a non-integral number of octets (Alignment Error).
*
* Attributes:
* accessible 1 isscalar 0 enums 0 hasdefval 0
* readable 1 iscolumn 1 ranges 0 hashint 0
* settable 0
*
*
* Its syntax is COUNTER (based on perltype COUNTER)
* The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
*/
/**
* Extract the current value of the etherStatsCRCAlignErrors data.
*
* Set a value using the data context for the row.
*
* @param rowreq_ctx
* Pointer to the row request context.
* @param etherStatsCRCAlignErrors_val_ptr
* Pointer to storage for a u_long variable
*
* @retval MFD_SUCCESS : success
* @retval MFD_SKIP : skip this node (no value for now)
* @retval MFD_ERROR : Any other error
*/
int
etherStatsCRCAlignErrors_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
u_long * etherStatsCRCAlignErrors_val_ptr)
{
/** we should have a non-NULL pointer */
netsnmp_assert(NULL != etherStatsCRCAlignErrors_val_ptr);
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsCRCAlignErrors_get",
"called\n"));
netsnmp_assert(NULL != rowreq_ctx);
/*
* TODO:231:o: |-> Extract the current value of the etherStatsCRCAlignErrors data.
* copy (* etherStatsCRCAlignErrors_val_ptr ) from rowreq_ctx->data
*/
(*etherStatsCRCAlignErrors_val_ptr) =
rowreq_ctx->data.etherStatsCRCAlignErrors;
return MFD_SUCCESS;
} /* etherStatsCRCAlignErrors_get */
/*---------------------------------------------------------------------
* RMON-MIB::etherStatsEntry.etherStatsUndersizePkts
* etherStatsUndersizePkts is subid 9 of etherStatsEntry.
* Its status is Current, and its access level is ReadOnly.
* OID: .1.3.6.1.2.1.16.1.1.1.9
* Description:
The total number of packets received that were
less than 64 octets long (excluding framing bits,
but including FCS octets) and were otherwise well
formed.
*
* Attributes:
* accessible 1 isscalar 0 enums 0 hasdefval 0
* readable 1 iscolumn 1 ranges 0 hashint 0
* settable 0
*
*
* Its syntax is COUNTER (based on perltype COUNTER)
* The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
*/
/**
* Extract the current value of the etherStatsUndersizePkts data.
*
* Set a value using the data context for the row.
*
* @param rowreq_ctx
* Pointer to the row request context.
* @param etherStatsUndersizePkts_val_ptr
* Pointer to storage for a u_long variable
*
* @retval MFD_SUCCESS : success
* @retval MFD_SKIP : skip this node (no value for now)
* @retval MFD_ERROR : Any other error
*/
int
etherStatsUndersizePkts_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
u_long * etherStatsUndersizePkts_val_ptr)
{
/** we should have a non-NULL pointer */
netsnmp_assert(NULL != etherStatsUndersizePkts_val_ptr);
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsUndersizePkts_get",
"called\n"));
netsnmp_assert(NULL != rowreq_ctx);
/*
* TODO:231:o: |-> Extract the current value of the etherStatsUndersizePkts data.
* copy (* etherStatsUndersizePkts_val_ptr ) from rowreq_ctx->data
*/
(*etherStatsUndersizePkts_val_ptr) =
rowreq_ctx->data.etherStatsUndersizePkts;
return MFD_SUCCESS;
} /* etherStatsUndersizePkts_get */
/*---------------------------------------------------------------------
* RMON-MIB::etherStatsEntry.etherStatsOversizePkts
* etherStatsOversizePkts is subid 10 of etherStatsEntry.
* Its status is Current, and its access level is ReadOnly.
* OID: .1.3.6.1.2.1.16.1.1.1.10
* Description:
The total number of packets received that were
longer than 1518 octets (excluding framing bits,
but including FCS octets) and were otherwise
well formed.
*
* Attributes:
* accessible 1 isscalar 0 enums 0 hasdefval 0
* readable 1 iscolumn 1 ranges 0 hashint 0
* settable 0
*
*
* Its syntax is COUNTER (based on perltype COUNTER)
* The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
*/
/**
* Extract the current value of the etherStatsOversizePkts data.
*
* Set a value using the data context for the row.
*
* @param rowreq_ctx
* Pointer to the row request context.
* @param etherStatsOversizePkts_val_ptr
* Pointer to storage for a u_long variable
*
* @retval MFD_SUCCESS : success
* @retval MFD_SKIP : skip this node (no value for now)
* @retval MFD_ERROR : Any other error
*/
int
etherStatsOversizePkts_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
u_long * etherStatsOversizePkts_val_ptr)
{
/** we should have a non-NULL pointer */
netsnmp_assert(NULL != etherStatsOversizePkts_val_ptr);
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsOversizePkts_get",
"called\n"));
netsnmp_assert(NULL != rowreq_ctx);
/*
* TODO:231:o: |-> Extract the current value of the etherStatsOversizePkts data.
* copy (* etherStatsOversizePkts_val_ptr ) from rowreq_ctx->data
*/
(*etherStatsOversizePkts_val_ptr) =
rowreq_ctx->data.etherStatsOversizePkts;
return MFD_SUCCESS;
} /* etherStatsOversizePkts_get */
/*---------------------------------------------------------------------
* RMON-MIB::etherStatsEntry.etherStatsFragments
* etherStatsFragments is subid 11 of etherStatsEntry.
* Its status is Current, and its access level is ReadOnly.
* OID: .1.3.6.1.2.1.16.1.1.1.11
* Description:
The total number of packets received that were less than
64 octets in length (excluding framing bits but including
FCS octets) and had either a bad Frame Check Sequence
(FCS) with an integral number of octets (FCS Error) or a
bad FCS with a non-integral number of octets (Alignment
Error).
Note that it is entirely normal for etherStatsFragments to
increment. This is because it counts both runts (which are
normal occurrences due to collisions) and noise hits.
*
* Attributes:
* accessible 1 isscalar 0 enums 0 hasdefval 0
* readable 1 iscolumn 1 ranges 0 hashint 0
* settable 0
*
*
* Its syntax is COUNTER (based on perltype COUNTER)
* The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
*/
/**
* Extract the current value of the etherStatsFragments data.
*
* Set a value using the data context for the row.
*
* @param rowreq_ctx
* Pointer to the row request context.
* @param etherStatsFragments_val_ptr
* Pointer to storage for a u_long variable
*
* @retval MFD_SUCCESS : success
* @retval MFD_SKIP : skip this node (no value for now)
* @retval MFD_ERROR : Any other error
*/
int
etherStatsFragments_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
u_long * etherStatsFragments_val_ptr)
{
/** we should have a non-NULL pointer */
netsnmp_assert(NULL != etherStatsFragments_val_ptr);
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsFragments_get",
"called\n"));
netsnmp_assert(NULL != rowreq_ctx);
/*
* TODO:231:o: |-> Extract the current value of the etherStatsFragments data.
* copy (* etherStatsFragments_val_ptr ) from rowreq_ctx->data
*/
(*etherStatsFragments_val_ptr) = rowreq_ctx->data.etherStatsFragments;
return MFD_SUCCESS;
} /* etherStatsFragments_get */
/*---------------------------------------------------------------------
* RMON-MIB::etherStatsEntry.etherStatsJabbers
* etherStatsJabbers is subid 12 of etherStatsEntry.
* Its status is Current, and its access level is ReadOnly.
* OID: .1.3.6.1.2.1.16.1.1.1.12
* Description:
The total number of packets received that were
longer than 1518 octets (excluding framing bits,
but including FCS octets), and had either a bad
Frame Check Sequence (FCS) with an integral number
of octets (FCS Error) or a bad FCS with a non-integral
number of octets (Alignment Error).
Note that this definition of jabber is different
than the definition in IEEE-802.3 section 8.2.1.5
(10BASE5) and section 10.3.1.4 (10BASE2). These
documents define jabber as the condition where any
packet exceeds 20 ms. The allowed range to detect
jabber is between 20 ms and 150 ms.
*
* Attributes:
* accessible 1 isscalar 0 enums 0 hasdefval 0
* readable 1 iscolumn 1 ranges 0 hashint 0
* settable 0
*
*
* Its syntax is COUNTER (based on perltype COUNTER)
* The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
*/
/**
* Extract the current value of the etherStatsJabbers data.
*
* Set a value using the data context for the row.
*
* @param rowreq_ctx
* Pointer to the row request context.
* @param etherStatsJabbers_val_ptr
* Pointer to storage for a u_long variable
*
* @retval MFD_SUCCESS : success
* @retval MFD_SKIP : skip this node (no value for now)
* @retval MFD_ERROR : Any other error
*/
int
etherStatsJabbers_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
u_long * etherStatsJabbers_val_ptr)
{
/** we should have a non-NULL pointer */
netsnmp_assert(NULL != etherStatsJabbers_val_ptr);
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsJabbers_get",
"called\n"));
netsnmp_assert(NULL != rowreq_ctx);
/*
* TODO:231:o: |-> Extract the current value of the etherStatsJabbers data.
* copy (* etherStatsJabbers_val_ptr ) from rowreq_ctx->data
*/
(*etherStatsJabbers_val_ptr) = rowreq_ctx->data.etherStatsJabbers;
return MFD_SUCCESS;
} /* etherStatsJabbers_get */
/*---------------------------------------------------------------------
* RMON-MIB::etherStatsEntry.etherStatsCollisions
* etherStatsCollisions is subid 13 of etherStatsEntry.
* Its status is Current, and its access level is ReadOnly.
* OID: .1.3.6.1.2.1.16.1.1.1.13
* Description:
The best estimate of the total number of collisions
on this Ethernet segment.
The value returned will depend on the location of the
RMON probe. Section 8.2.1.3 (10BASE-5) and section
10.3.1.3 (10BASE-2) of IEEE standard 802.3 states that a
station must detect a collision, in the receive mode, if
three or more stations are transmitting simultaneously. A
repeater port must detect a collision when two or more
stations are transmitting simultaneously. Thus a probe
placed on a repeater port could record more collisions
than a probe connected to a station on the same segment
would.
Probe location plays a much smaller role when considering
10BASE-T. 14.2.1.4 (10BASE-T) of IEEE standard 802.3
defines a collision as the simultaneous presence of signals
on the DO and RD circuits (transmitting and receiving
at the same time). A 10BASE-T station can only detect
collisions when it is transmitting. Thus probes placed on
a station and a repeater, should report the same number of
collisions.
Note also that an RMON probe inside a repeater should
ideally report collisions between the repeater and one or
more other hosts (transmit collisions as defined by IEEE
802.3k) plus receiver collisions observed on any coax
segments to which the repeater is connected.
*
* Attributes:
* accessible 1 isscalar 0 enums 0 hasdefval 0
* readable 1 iscolumn 1 ranges 0 hashint 0
* settable 0
*
*
* Its syntax is COUNTER (based on perltype COUNTER)
* The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
*/
/**
* Extract the current value of the etherStatsCollisions data.
*
* Set a value using the data context for the row.
*
* @param rowreq_ctx
* Pointer to the row request context.
* @param etherStatsCollisions_val_ptr
* Pointer to storage for a u_long variable
*
* @retval MFD_SUCCESS : success
* @retval MFD_SKIP : skip this node (no value for now)
* @retval MFD_ERROR : Any other error
*/
int
etherStatsCollisions_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
u_long * etherStatsCollisions_val_ptr)
{
/** we should have a non-NULL pointer */
netsnmp_assert(NULL != etherStatsCollisions_val_ptr);
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsCollisions_get",
"called\n"));
netsnmp_assert(NULL != rowreq_ctx);
/*
* TODO:231:o: |-> Extract the current value of the etherStatsCollisions data.
* copy (* etherStatsCollisions_val_ptr ) from rowreq_ctx->data
*/
(*etherStatsCollisions_val_ptr) =
rowreq_ctx->data.etherStatsCollisions;
return MFD_SUCCESS;
} /* etherStatsCollisions_get */
/*---------------------------------------------------------------------
* RMON-MIB::etherStatsEntry.etherStatsPkts64Octets
* etherStatsPkts64Octets is subid 14 of etherStatsEntry.
* Its status is Current, and its access level is ReadOnly.
* OID: .1.3.6.1.2.1.16.1.1.1.14
* Description:
The total number of packets (including bad
packets) received that were 64 octets in length
(excluding framing bits but including FCS octets).
*
* Attributes:
* accessible 1 isscalar 0 enums 0 hasdefval 0
* readable 1 iscolumn 1 ranges 0 hashint 0
* settable 0
*
*
* Its syntax is COUNTER (based on perltype COUNTER)
* The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
*/
/**
* Extract the current value of the etherStatsPkts64Octets data.
*
* Set a value using the data context for the row.
*
* @param rowreq_ctx
* Pointer to the row request context.
* @param etherStatsPkts64Octets_val_ptr
* Pointer to storage for a u_long variable
*
* @retval MFD_SUCCESS : success
* @retval MFD_SKIP : skip this node (no value for now)
* @retval MFD_ERROR : Any other error
*/
int
etherStatsPkts64Octets_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
u_long * etherStatsPkts64Octets_val_ptr)
{
/** we should have a non-NULL pointer */
netsnmp_assert(NULL != etherStatsPkts64Octets_val_ptr);
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsPkts64Octets_get",
"called\n"));
netsnmp_assert(NULL != rowreq_ctx);
/*
* TODO:231:o: |-> Extract the current value of the etherStatsPkts64Octets data.
* copy (* etherStatsPkts64Octets_val_ptr ) from rowreq_ctx->data
*/
(*etherStatsPkts64Octets_val_ptr) =
rowreq_ctx->data.etherStatsPkts64Octets;
return MFD_SUCCESS;
} /* etherStatsPkts64Octets_get */
/*---------------------------------------------------------------------
* RMON-MIB::etherStatsEntry.etherStatsPkts65to127Octets
* etherStatsPkts65to127Octets is subid 15 of etherStatsEntry.
* Its status is Current, and its access level is ReadOnly.
* OID: .1.3.6.1.2.1.16.1.1.1.15
* Description:
The total number of packets (including bad
packets) received that were between
65 and 127 octets in length inclusive
(excluding framing bits but including FCS octets).
*
* Attributes:
* accessible 1 isscalar 0 enums 0 hasdefval 0
* readable 1 iscolumn 1 ranges 0 hashint 0
* settable 0
*
*
* Its syntax is COUNTER (based on perltype COUNTER)
* The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
*/
/**
* Extract the current value of the etherStatsPkts65to127Octets data.
*
* Set a value using the data context for the row.
*
* @param rowreq_ctx
* Pointer to the row request context.
* @param etherStatsPkts65to127Octets_val_ptr
* Pointer to storage for a u_long variable
*
* @retval MFD_SUCCESS : success
* @retval MFD_SKIP : skip this node (no value for now)
* @retval MFD_ERROR : Any other error
*/
int
etherStatsPkts65to127Octets_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
u_long *
etherStatsPkts65to127Octets_val_ptr)
{
/** we should have a non-NULL pointer */
netsnmp_assert(NULL != etherStatsPkts65to127Octets_val_ptr);
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsPkts65to127Octets_get",
"called\n"));
netsnmp_assert(NULL != rowreq_ctx);
/*
* TODO:231:o: |-> Extract the current value of the etherStatsPkts65to127Octets data.
* copy (* etherStatsPkts65to127Octets_val_ptr ) from rowreq_ctx->data
*/
(*etherStatsPkts65to127Octets_val_ptr) =
rowreq_ctx->data.etherStatsPkts65to127Octets;
return MFD_SUCCESS;
} /* etherStatsPkts65to127Octets_get */
/*---------------------------------------------------------------------
* RMON-MIB::etherStatsEntry.etherStatsPkts128to255Octets
* etherStatsPkts128to255Octets is subid 16 of etherStatsEntry.
* Its status is Current, and its access level is ReadOnly.
* OID: .1.3.6.1.2.1.16.1.1.1.16
* Description:
The total number of packets (including bad
packets) received that were between
128 and 255 octets in length inclusive
(excluding framing bits but including FCS octets).
*
* Attributes:
* accessible 1 isscalar 0 enums 0 hasdefval 0
* readable 1 iscolumn 1 ranges 0 hashint 0
* settable 0
*
*
* Its syntax is COUNTER (based on perltype COUNTER)
* The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
*/
/**
* Extract the current value of the etherStatsPkts128to255Octets data.
*
* Set a value using the data context for the row.
*
* @param rowreq_ctx
* Pointer to the row request context.
* @param etherStatsPkts128to255Octets_val_ptr
* Pointer to storage for a u_long variable
*
* @retval MFD_SUCCESS : success
* @retval MFD_SKIP : skip this node (no value for now)
* @retval MFD_ERROR : Any other error
*/
int
etherStatsPkts128to255Octets_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
u_long *
etherStatsPkts128to255Octets_val_ptr)
{
/** we should have a non-NULL pointer */
netsnmp_assert(NULL != etherStatsPkts128to255Octets_val_ptr);
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsPkts128to255Octets_get",
"called\n"));
netsnmp_assert(NULL != rowreq_ctx);
/*
* TODO:231:o: |-> Extract the current value of the etherStatsPkts128to255Octets data.
* copy (* etherStatsPkts128to255Octets_val_ptr ) from rowreq_ctx->data
*/
(*etherStatsPkts128to255Octets_val_ptr) =
rowreq_ctx->data.etherStatsPkts128to255Octets;
return MFD_SUCCESS;
} /* etherStatsPkts128to255Octets_get */
/*---------------------------------------------------------------------
* RMON-MIB::etherStatsEntry.etherStatsPkts256to511Octets
* etherStatsPkts256to511Octets is subid 17 of etherStatsEntry.
* Its status is Current, and its access level is ReadOnly.
* OID: .1.3.6.1.2.1.16.1.1.1.17
* Description:
The total number of packets (including bad
packets) received that were between
256 and 511 octets in length inclusive
(excluding framing bits but including FCS octets).
*
* Attributes:
* accessible 1 isscalar 0 enums 0 hasdefval 0
* readable 1 iscolumn 1 ranges 0 hashint 0
* settable 0
*
*
* Its syntax is COUNTER (based on perltype COUNTER)
* The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
*/
/**
* Extract the current value of the etherStatsPkts256to511Octets data.
*
* Set a value using the data context for the row.
*
* @param rowreq_ctx
* Pointer to the row request context.
* @param etherStatsPkts256to511Octets_val_ptr
* Pointer to storage for a u_long variable
*
* @retval MFD_SUCCESS : success
* @retval MFD_SKIP : skip this node (no value for now)
* @retval MFD_ERROR : Any other error
*/
int
etherStatsPkts256to511Octets_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
u_long *
etherStatsPkts256to511Octets_val_ptr)
{
/** we should have a non-NULL pointer */
netsnmp_assert(NULL != etherStatsPkts256to511Octets_val_ptr);
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsPkts256to511Octets_get",
"called\n"));
netsnmp_assert(NULL != rowreq_ctx);
/*
* TODO:231:o: |-> Extract the current value of the etherStatsPkts256to511Octets data.
* copy (* etherStatsPkts256to511Octets_val_ptr ) from rowreq_ctx->data
*/
(*etherStatsPkts256to511Octets_val_ptr) =
rowreq_ctx->data.etherStatsPkts256to511Octets;
return MFD_SUCCESS;
} /* etherStatsPkts256to511Octets_get */
/*---------------------------------------------------------------------
* RMON-MIB::etherStatsEntry.etherStatsPkts512to1023Octets
* etherStatsPkts512to1023Octets is subid 18 of etherStatsEntry.
* Its status is Current, and its access level is ReadOnly.
* OID: .1.3.6.1.2.1.16.1.1.1.18
* Description:
The total number of packets (including bad
packets) received that were between
512 and 1023 octets in length inclusive
(excluding framing bits but including FCS octets).
*
* Attributes:
* accessible 1 isscalar 0 enums 0 hasdefval 0
* readable 1 iscolumn 1 ranges 0 hashint 0
* settable 0
*
*
* Its syntax is COUNTER (based on perltype COUNTER)
* The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
*/
/**
* Extract the current value of the etherStatsPkts512to1023Octets data.
*
* Set a value using the data context for the row.
*
* @param rowreq_ctx
* Pointer to the row request context.
* @param etherStatsPkts512to1023Octets_val_ptr
* Pointer to storage for a u_long variable
*
* @retval MFD_SUCCESS : success
* @retval MFD_SKIP : skip this node (no value for now)
* @retval MFD_ERROR : Any other error
*/
int
etherStatsPkts512to1023Octets_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
u_long *
etherStatsPkts512to1023Octets_val_ptr)
{
/** we should have a non-NULL pointer */
netsnmp_assert(NULL != etherStatsPkts512to1023Octets_val_ptr);
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsPkts512to1023Octets_get", "called\n"));
netsnmp_assert(NULL != rowreq_ctx);
/*
* TODO:231:o: |-> Extract the current value of the etherStatsPkts512to1023Octets data.
* copy (* etherStatsPkts512to1023Octets_val_ptr ) from rowreq_ctx->data
*/
(*etherStatsPkts512to1023Octets_val_ptr) =
rowreq_ctx->data.etherStatsPkts512to1023Octets;
return MFD_SUCCESS;
} /* etherStatsPkts512to1023Octets_get */
/*---------------------------------------------------------------------
* RMON-MIB::etherStatsEntry.etherStatsPkts1024to1518Octets
* etherStatsPkts1024to1518Octets is subid 19 of etherStatsEntry.
* Its status is Current, and its access level is ReadOnly.
* OID: .1.3.6.1.2.1.16.1.1.1.19
* Description:
The total number of packets (including bad
packets) received that were between
1024 and 1518 octets in length inclusive
(excluding framing bits but including FCS octets).
*
* Attributes:
* accessible 1 isscalar 0 enums 0 hasdefval 0
* readable 1 iscolumn 1 ranges 0 hashint 0
* settable 0
*
*
* Its syntax is COUNTER (based on perltype COUNTER)
* The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
*/
/**
* Extract the current value of the etherStatsPkts1024to1518Octets data.
*
* Set a value using the data context for the row.
*
* @param rowreq_ctx
* Pointer to the row request context.
* @param etherStatsPkts1024to1518Octets_val_ptr
* Pointer to storage for a u_long variable
*
* @retval MFD_SUCCESS : success
* @retval MFD_SKIP : skip this node (no value for now)
* @retval MFD_ERROR : Any other error
*/
int
etherStatsPkts1024to1518Octets_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
u_long *
etherStatsPkts1024to1518Octets_val_ptr)
{
/** we should have a non-NULL pointer */
netsnmp_assert(NULL != etherStatsPkts1024to1518Octets_val_ptr);
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsPkts1024to1518Octets_get", "called\n"));
netsnmp_assert(NULL != rowreq_ctx);
/*
* TODO:231:o: |-> Extract the current value of the etherStatsPkts1024to1518Octets data.
* copy (* etherStatsPkts1024to1518Octets_val_ptr ) from rowreq_ctx->data
*/
(*etherStatsPkts1024to1518Octets_val_ptr) =
rowreq_ctx->data.etherStatsPkts1024to1518Octets;
return MFD_SUCCESS;
} /* etherStatsPkts1024to1518Octets_get */
/*---------------------------------------------------------------------
* RMON-MIB::etherStatsEntry.etherStatsOwner
* etherStatsOwner is subid 20 of etherStatsEntry.
* Its status is Current, and its access level is Create.
* OID: .1.3.6.1.2.1.16.1.1.1.20
* Description:
The entity that configured this entry and is therefore
using the resources assigned to it.
*
* Attributes:
* accessible 1 isscalar 0 enums 0 hasdefval 0
* readable 1 iscolumn 1 ranges 1 hashint 0
* settable 1
*
* Ranges: 0 - 127;
*
* Its syntax is OwnerString (based on perltype OCTETSTR)
* The net-snmp type is ASN_OCTET_STR. The C type decl is char (char)
* This data type requires a length. (Max 127)
*/
/**
* Extract the current value of the etherStatsOwner data.
*
* Set a value using the data context for the row.
*
* @param rowreq_ctx
* Pointer to the row request context.
* @param etherStatsOwner_val_ptr_ptr
* Pointer to storage for a char variable
* @param etherStatsOwner_val_ptr_len_ptr
* Pointer to a size_t. On entry, it will contain the size (in bytes)
* pointed to by etherStatsOwner.
* On exit, this value should contain the data size (in bytes).
*
* @retval MFD_SUCCESS : success
* @retval MFD_SKIP : skip this node (no value for now)
* @retval MFD_ERROR : Any other error
*
* @note If you need more than (*etherStatsOwner_val_ptr_len_ptr) bytes of memory,
* allocate it using malloc() and update etherStatsOwner_val_ptr_ptr.
* <b>DO NOT</b> free the previous pointer.
* The MFD helper will release the memory you allocate.
*
* @remark If you call this function yourself, you are responsible
* for checking if the pointer changed, and freeing any
* previously allocated memory. (Not necessary if you pass
* in a pointer to static memory, obviously.)
*/
int
etherStatsOwner_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
char **etherStatsOwner_val_ptr_ptr,
size_t *etherStatsOwner_val_ptr_len_ptr)
{
/** we should have a non-NULL pointer and enough storage */
netsnmp_assert((NULL != etherStatsOwner_val_ptr_ptr)
&& (NULL != *etherStatsOwner_val_ptr_ptr));
netsnmp_assert(NULL != etherStatsOwner_val_ptr_len_ptr);
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsOwner_get",
"called\n"));
netsnmp_assert(NULL != rowreq_ctx);
/*
* TODO:231:o: |-> Extract the current value of the etherStatsOwner data.
* copy (* etherStatsOwner_val_ptr_ptr ) data and (* etherStatsOwner_val_ptr_len_ptr ) from rowreq_ctx->data
*/
/*
* make sure there is enough space for etherStatsOwner data
*/
if ((NULL == (*etherStatsOwner_val_ptr_ptr)) ||
((*etherStatsOwner_val_ptr_len_ptr) <
(rowreq_ctx->data.etherStatsOwner_len *
sizeof(rowreq_ctx->data.etherStatsOwner[0])))) {
/*
* allocate space for etherStatsOwner data
*/
(*etherStatsOwner_val_ptr_ptr) =
malloc(rowreq_ctx->data.etherStatsOwner_len *
sizeof(rowreq_ctx->data.etherStatsOwner[0]));
if (NULL == (*etherStatsOwner_val_ptr_ptr)) {
snmp_log(LOG_ERR, "could not allocate memory\n");
return MFD_ERROR;
}
}
(*etherStatsOwner_val_ptr_len_ptr) =
rowreq_ctx->data.etherStatsOwner_len *
sizeof(rowreq_ctx->data.etherStatsOwner[0]);
memcpy((*etherStatsOwner_val_ptr_ptr),
rowreq_ctx->data.etherStatsOwner,
rowreq_ctx->data.etherStatsOwner_len *
sizeof(rowreq_ctx->data.etherStatsOwner[0]));
return MFD_SUCCESS;
} /* etherStatsOwner_get */
/*---------------------------------------------------------------------
* RMON-MIB::etherStatsEntry.etherStatsStatus
* etherStatsStatus is subid 21 of etherStatsEntry.
* Its status is Current, and its access level is Create.
* OID: .1.3.6.1.2.1.16.1.1.1.21
* Description:
The status of this etherStats entry.
*
* Attributes:
* accessible 1 isscalar 0 enums 1 hasdefval 0
* readable 1 iscolumn 1 ranges 0 hashint 0
* settable 1
*
* Enum range: 2/8. Values: valid(1), createRequest(2), underCreation(3), invalid(4)
*
* Its syntax is EntryStatus (based on perltype INTEGER)
* The net-snmp type is ASN_INTEGER. The C type decl is long (u_long)
*/
/**
* Extract the current value of the etherStatsStatus data.
*
* Set a value using the data context for the row.
*
* @param rowreq_ctx
* Pointer to the row request context.
* @param etherStatsStatus_val_ptr
* Pointer to storage for a long variable
*
* @retval MFD_SUCCESS : success
* @retval MFD_SKIP : skip this node (no value for now)
* @retval MFD_ERROR : Any other error
*/
int
etherStatsStatus_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
u_long * etherStatsStatus_val_ptr)
{
/** we should have a non-NULL pointer */
netsnmp_assert(NULL != etherStatsStatus_val_ptr);
DEBUGMSGTL(("verbose:etherStatsTable:etherStatsStatus_get",
"called\n"));
netsnmp_assert(NULL != rowreq_ctx);
/*
* TODO:231:o: |-> Extract the current value of the etherStatsStatus data.
* copy (* etherStatsStatus_val_ptr ) from rowreq_ctx->data
*/
(*etherStatsStatus_val_ptr) = rowreq_ctx->data.etherStatsStatus;
return MFD_SUCCESS;
} /* etherStatsStatus_get */
/** @} */