diff options
Diffstat (limited to 'agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_get.c')
-rw-r--r-- | agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_get.c | 1411 |
1 files changed, 1411 insertions, 0 deletions
diff --git a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_get.c b/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_get.c new file mode 100644 index 0000000..3ba51d7 --- /dev/null +++ b/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_get.c @@ -0,0 +1,1411 @@ +/* + * 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 */ + + + +/** @} */ |