Пример #1
0
static u16_t 
udp_get_value(struct snmp_node_instance* instance, void* value)
{
  u32_t *uint_ptr = (u32_t*)value;

  switch (instance->node->oid) {
  case 1: /* udpInDatagrams */
    *uint_ptr = STATS_GET(mib2.udpindatagrams);
    return sizeof(*uint_ptr);
  case 2: /* udpNoPorts */
    *uint_ptr = STATS_GET(mib2.udpnoports);
    return sizeof(*uint_ptr);
  case 3: /* udpInErrors */
    *uint_ptr = STATS_GET(mib2.udpinerrors);
    return sizeof(*uint_ptr);
  case 4: /* udpOutDatagrams */
    *uint_ptr = STATS_GET(mib2.udpoutdatagrams);
    return sizeof(*uint_ptr);
  case 8: /* udpHCInDatagrams */
    memset(value, 0, 2*sizeof(u32_t)); /* not supported */
    return 2*sizeof(u32_t);
  case 9: /* udpHCOutDatagrams */
    memset(value, 0, 2*sizeof(u32_t)); /* not supported */
    return 2*sizeof(u32_t);
  default:
    LWIP_DEBUGF(SNMP_MIB_DEBUG,("udp_get_value(): unknown id: %"S32_F"\n", instance->node->oid));
    break;
  }

  return 0;
}
Пример #2
0
static u16_t
icmp_get_value(const struct snmp_scalar_array_node_def *node, void *value)
{
  u32_t *uint_ptr = (u32_t*)value;

  switch (node->oid) {
  case 1: /* icmpInMsgs */
    *uint_ptr = STATS_GET(mib2.icmpinmsgs);
    return sizeof(*uint_ptr);
  case 2: /* icmpInErrors */
    *uint_ptr = STATS_GET(mib2.icmpinerrors);
    return sizeof(*uint_ptr);
  case 3: /* icmpInDestUnreachs */
    *uint_ptr = STATS_GET(mib2.icmpindestunreachs);
    return sizeof(*uint_ptr);
  case 4: /* icmpInTimeExcds */
    *uint_ptr = STATS_GET(mib2.icmpintimeexcds);
    return sizeof(*uint_ptr);
  case 5: /* icmpInParmProbs */
    *uint_ptr = STATS_GET(mib2.icmpinparmprobs);
    return sizeof(*uint_ptr);
  case 6: /* icmpInSrcQuenchs */
    *uint_ptr = STATS_GET(mib2.icmpinsrcquenchs);
    return sizeof(*uint_ptr);
  case 7: /* icmpInRedirects */
    *uint_ptr = STATS_GET(mib2.icmpinredirects);
    return sizeof(*uint_ptr);
  case 8: /* icmpInEchos */
    *uint_ptr = STATS_GET(mib2.icmpinechos);
    return sizeof(*uint_ptr);
  case 9: /* icmpInEchoReps */
    *uint_ptr = STATS_GET(mib2.icmpinechoreps);
    return sizeof(*uint_ptr);
  case 10: /* icmpInTimestamps */
    *uint_ptr = STATS_GET(mib2.icmpintimestamps);
    return sizeof(*uint_ptr);
  case 11: /* icmpInTimestampReps */
    *uint_ptr = STATS_GET(mib2.icmpintimestampreps);
    return sizeof(*uint_ptr);
  case 12: /* icmpInAddrMasks */
    *uint_ptr = STATS_GET(mib2.icmpinaddrmasks);
    return sizeof(*uint_ptr);
  case 13: /* icmpInAddrMaskReps */
    *uint_ptr = STATS_GET(mib2.icmpinaddrmaskreps);
    return sizeof(*uint_ptr);
  case 14: /* icmpOutMsgs */
    *uint_ptr = STATS_GET(mib2.icmpoutmsgs);
    return sizeof(*uint_ptr);
  case 15: /* icmpOutErrors */
    *uint_ptr = STATS_GET(mib2.icmpouterrors);
    return sizeof(*uint_ptr);
  case 16: /* icmpOutDestUnreachs */
    *uint_ptr = STATS_GET(mib2.icmpoutdestunreachs);
    return sizeof(*uint_ptr);
  case 17: /* icmpOutTimeExcds */
    *uint_ptr = STATS_GET(mib2.icmpouttimeexcds);
    return sizeof(*uint_ptr);
  case 18: /* icmpOutParmProbs: not supported -> always 0 */
    *uint_ptr = 0;
    return sizeof(*uint_ptr);
  case 19: /* icmpOutSrcQuenchs: not supported -> always 0 */
    *uint_ptr = 0;
    return sizeof(*uint_ptr);
  case 20: /* icmpOutRedirects: not supported -> always 0 */
    *uint_ptr = 0;
    return sizeof(*uint_ptr);
  case 21: /* icmpOutEchos */
    *uint_ptr = STATS_GET(mib2.icmpoutechos);
    return sizeof(*uint_ptr);
  case 22: /* icmpOutEchoReps */
    *uint_ptr = STATS_GET(mib2.icmpoutechoreps);
    return sizeof(*uint_ptr);
  case 23: /* icmpOutTimestamps: not supported -> always 0 */
    *uint_ptr = 0;
    return sizeof(*uint_ptr);
  case 24: /* icmpOutTimestampReps: not supported -> always 0 */
    *uint_ptr = 0;
    return sizeof(*uint_ptr);
  case 25: /* icmpOutAddrMasks: not supported -> always 0 */
    *uint_ptr = 0;
    return sizeof(*uint_ptr);
  case 26: /* icmpOutAddrMaskReps: not supported -> always 0 */
    *uint_ptr = 0;
    return sizeof(*uint_ptr);
  default:
    LWIP_DEBUGF(SNMP_MIB_DEBUG,("icmp_get_value(): unknown id: %"S32_F"\n", node->oid));
    break;
  }

  return 0;
}
Пример #3
0
static s16_t
tcp_get_value(struct snmp_node_instance* instance, void* value)
{
  u32_t *uint_ptr = (u32_t*)value;
  s32_t *sint_ptr = (s32_t*)value;

  switch (instance->node->oid) {
  case 1: /* tcpRtoAlgorithm, vanj(4) */
    *sint_ptr = 4;
    return sizeof(*sint_ptr);
  case 2: /* tcpRtoMin */
    /* @todo not the actual value, a guess,
        needs to be calculated */
    *sint_ptr = 1000;
    return sizeof(*sint_ptr);
  case 3: /* tcpRtoMax */
    /* @todo not the actual value, a guess,
        needs to be calculated */
    *sint_ptr = 60000;
    return sizeof(*sint_ptr);
  case 4: /* tcpMaxConn */
    *sint_ptr = MEMP_NUM_TCP_PCB;
    return sizeof(*sint_ptr);
  case 5: /* tcpActiveOpens */
    *uint_ptr = STATS_GET(mib2.tcpactiveopens);
    return sizeof(*uint_ptr);
  case 6: /* tcpPassiveOpens */
    *uint_ptr = STATS_GET(mib2.tcppassiveopens);
    return sizeof(*uint_ptr);
  case 7: /* tcpAttemptFails */
    *uint_ptr = STATS_GET(mib2.tcpattemptfails);
    return sizeof(*uint_ptr);
  case 8: /* tcpEstabResets */
    *uint_ptr = STATS_GET(mib2.tcpestabresets);
    return sizeof(*uint_ptr);
  case 9: /* tcpCurrEstab */
    {
      u16_t tcpcurrestab = 0;
      struct tcp_pcb *pcb = tcp_active_pcbs;
      while (pcb != NULL) {
        if ((pcb->state == ESTABLISHED) ||
            (pcb->state == CLOSE_WAIT)) {
          tcpcurrestab++;
        }
        pcb = pcb->next;
      }
      *uint_ptr = tcpcurrestab;
    }
    return sizeof(*uint_ptr);
  case 10: /* tcpInSegs */
    *uint_ptr = STATS_GET(mib2.tcpinsegs);
    return sizeof(*uint_ptr);
  case 11: /* tcpOutSegs */
    *uint_ptr = STATS_GET(mib2.tcpoutsegs);
    return sizeof(*uint_ptr);
  case 12: /* tcpRetransSegs */
    *uint_ptr = STATS_GET(mib2.tcpretranssegs);
    return sizeof(*uint_ptr);
  case 14: /* tcpInErrs */
    *uint_ptr = STATS_GET(mib2.tcpinerrs);
    return sizeof(*uint_ptr);
  case 15: /* tcpOutRsts */
    *uint_ptr = STATS_GET(mib2.tcpoutrsts);
    return sizeof(*uint_ptr);
  case 17: /* tcpHCInSegs */
    memset(value, 0, 2*sizeof(u32_t)); /* not supported */
    return 2*sizeof(u32_t);
  case 18: /* tcpHCOutSegs */
    memset(value, 0, 2*sizeof(u32_t)); /* not supported */
    return 2*sizeof(u32_t);
  default:
    LWIP_DEBUGF(SNMP_MIB_DEBUG,("tcp_get_value(): unknown id: %"S32_F"\n", instance->node->oid));
    break;
  }

  return 0;
}
Пример #4
0
static s16_t
ip_get_value(struct snmp_node_instance* instance, void* value)
{
  s32_t* sint_ptr = (s32_t*)value;
  u32_t* uint_ptr = (u32_t*)value;

  switch (instance->node->oid) {
  case 1: /* ipForwarding */
#if IP_FORWARD
    /* forwarding */
    *sint_ptr = 1;
#else
    /* not-forwarding */
    *sint_ptr = 2;
#endif
    return sizeof(*sint_ptr);
  case 2: /* ipDefaultTTL */
    *sint_ptr = IP_DEFAULT_TTL;
    return sizeof(*sint_ptr);
  case 3: /* ipInReceives */
    *uint_ptr = STATS_GET(mib2.ipinreceives);
    return sizeof(*uint_ptr);
  case 4: /* ipInHdrErrors */
    *uint_ptr = STATS_GET(mib2.ipinhdrerrors);
    return sizeof(*uint_ptr);
  case 5: /* ipInAddrErrors */
    *uint_ptr = STATS_GET(mib2.ipinaddrerrors);
    return sizeof(*uint_ptr);
  case 6: /* ipForwDatagrams */
    *uint_ptr = STATS_GET(mib2.ipforwdatagrams);
    return sizeof(*uint_ptr);
  case 7: /* ipInUnknownProtos */
    *uint_ptr = STATS_GET(mib2.ipinunknownprotos);
    return sizeof(*uint_ptr);
  case 8: /* ipInDiscards */
    *uint_ptr = STATS_GET(mib2.ipindiscards);
    return sizeof(*uint_ptr);
  case 9: /* ipInDelivers */
    *uint_ptr = STATS_GET(mib2.ipindelivers);
    return sizeof(*uint_ptr);
  case 10: /* ipOutRequests */
    *uint_ptr = STATS_GET(mib2.ipoutrequests);
    return sizeof(*uint_ptr);
  case 11: /* ipOutDiscards */
    *uint_ptr = STATS_GET(mib2.ipoutdiscards);
    return sizeof(*uint_ptr);
  case 12: /* ipOutNoRoutes */
    *uint_ptr = STATS_GET(mib2.ipoutnoroutes);
    return sizeof(*uint_ptr);
  case 13: /* ipReasmTimeout */
#if IP_REASSEMBLY
    *sint_ptr = IP_REASS_MAXAGE;
#else
    *sint_ptr = 0;
#endif
    return sizeof(*sint_ptr);
  case 14: /* ipReasmReqds */
    *uint_ptr = STATS_GET(mib2.ipreasmreqds);
    return sizeof(*uint_ptr);
  case 15: /* ipReasmOKs */
    *uint_ptr = STATS_GET(mib2.ipreasmoks);
    return sizeof(*uint_ptr);
  case 16: /* ipReasmFails */
    *uint_ptr = STATS_GET(mib2.ipreasmfails);
    return sizeof(*uint_ptr);
  case 17: /* ipFragOKs */
    *uint_ptr = STATS_GET(mib2.ipfragoks);
    return sizeof(*uint_ptr);
  case 18: /* ipFragFails */
    *uint_ptr = STATS_GET(mib2.ipfragfails);
    return sizeof(*uint_ptr);
  case 19: /* ipFragCreates */
    *uint_ptr = STATS_GET(mib2.ipfragcreates);
    return sizeof(*uint_ptr);
  case 23: /* ipRoutingDiscards: not supported -> always 0 */
    *uint_ptr = 0;
    return sizeof(*uint_ptr);
  default:
    LWIP_DEBUGF(SNMP_MIB_DEBUG,("ip_get_value(): unknown id: %"S32_F"\n", instance->node->oid));
    break;
  }

  return 0;
}