SNMP: Add support for RFC 5343
Add identification of the 'local engine' format.
This commit is contained in:
parent
25487eceef
commit
ff23d579de
|
@ -1222,6 +1222,7 @@ static const true_false_string tfs_snmp_engineid_conform = {
|
||||||
#define SNMP_ENGINEID_FORMAT_MACADDRESS 0x03
|
#define SNMP_ENGINEID_FORMAT_MACADDRESS 0x03
|
||||||
#define SNMP_ENGINEID_FORMAT_TEXT 0x04
|
#define SNMP_ENGINEID_FORMAT_TEXT 0x04
|
||||||
#define SNMP_ENGINEID_FORMAT_OCTETS 0x05
|
#define SNMP_ENGINEID_FORMAT_OCTETS 0x05
|
||||||
|
#define SNMP_ENGINEID_FORMAT_LOCAL 0x06
|
||||||
|
|
||||||
static const value_string snmp_engineid_format_vals[] = {
|
static const value_string snmp_engineid_format_vals[] = {
|
||||||
{ SNMP_ENGINEID_FORMAT_IPV4, "IPv4 address" },
|
{ SNMP_ENGINEID_FORMAT_IPV4, "IPv4 address" },
|
||||||
|
@ -1229,6 +1230,7 @@ static const value_string snmp_engineid_format_vals[] = {
|
||||||
{ SNMP_ENGINEID_FORMAT_MACADDRESS, "MAC address" },
|
{ SNMP_ENGINEID_FORMAT_MACADDRESS, "MAC address" },
|
||||||
{ SNMP_ENGINEID_FORMAT_TEXT, "Text, administratively assigned" },
|
{ SNMP_ENGINEID_FORMAT_TEXT, "Text, administratively assigned" },
|
||||||
{ SNMP_ENGINEID_FORMAT_OCTETS, "Octets, administratively assigned" },
|
{ SNMP_ENGINEID_FORMAT_OCTETS, "Octets, administratively assigned" },
|
||||||
|
{ SNMP_ENGINEID_FORMAT_LOCAL, "Local engine" },
|
||||||
{ 0, NULL }
|
{ 0, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1333,6 +1335,8 @@ dissect_snmp_engineid(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, int o
|
||||||
len_remain=0;
|
len_remain=0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case SNMP_ENGINEID_FORMAT_LOCAL:
|
||||||
|
break;
|
||||||
case 128:
|
case 128:
|
||||||
/* most common enterprise-specific format: (ucd|net)-snmp random */
|
/* most common enterprise-specific format: (ucd|net)-snmp random */
|
||||||
if ((enterpriseid==2021)||(enterpriseid==8072)) {
|
if ((enterpriseid==2021)||(enterpriseid==8072)) {
|
||||||
|
@ -1359,7 +1363,7 @@ dissect_snmp_engineid(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, int o
|
||||||
case SNMP_ENGINEID_FORMAT_OCTETS:
|
case SNMP_ENGINEID_FORMAT_OCTETS:
|
||||||
default:
|
default:
|
||||||
/* max. 27 bytes, administratively assigned or unknown format */
|
/* max. 27 bytes, administratively assigned or unknown format */
|
||||||
if (len_remain<=27) {
|
if (len_remain>0 && len_remain<=27) {
|
||||||
proto_tree_add_item(tree, hf_snmp_engineid_data, tvb, offset, len_remain, ENC_NA);
|
proto_tree_add_item(tree, hf_snmp_engineid_data, tvb, offset, len_remain, ENC_NA);
|
||||||
offset+=len_remain;
|
offset+=len_remain;
|
||||||
len_remain=0;
|
len_remain=0;
|
||||||
|
|
|
@ -1309,6 +1309,7 @@ static const true_false_string tfs_snmp_engineid_conform = {
|
||||||
#define SNMP_ENGINEID_FORMAT_MACADDRESS 0x03
|
#define SNMP_ENGINEID_FORMAT_MACADDRESS 0x03
|
||||||
#define SNMP_ENGINEID_FORMAT_TEXT 0x04
|
#define SNMP_ENGINEID_FORMAT_TEXT 0x04
|
||||||
#define SNMP_ENGINEID_FORMAT_OCTETS 0x05
|
#define SNMP_ENGINEID_FORMAT_OCTETS 0x05
|
||||||
|
#define SNMP_ENGINEID_FORMAT_LOCAL 0x06
|
||||||
|
|
||||||
static const value_string snmp_engineid_format_vals[] = {
|
static const value_string snmp_engineid_format_vals[] = {
|
||||||
{ SNMP_ENGINEID_FORMAT_IPV4, "IPv4 address" },
|
{ SNMP_ENGINEID_FORMAT_IPV4, "IPv4 address" },
|
||||||
|
@ -1316,6 +1317,7 @@ static const value_string snmp_engineid_format_vals[] = {
|
||||||
{ SNMP_ENGINEID_FORMAT_MACADDRESS, "MAC address" },
|
{ SNMP_ENGINEID_FORMAT_MACADDRESS, "MAC address" },
|
||||||
{ SNMP_ENGINEID_FORMAT_TEXT, "Text, administratively assigned" },
|
{ SNMP_ENGINEID_FORMAT_TEXT, "Text, administratively assigned" },
|
||||||
{ SNMP_ENGINEID_FORMAT_OCTETS, "Octets, administratively assigned" },
|
{ SNMP_ENGINEID_FORMAT_OCTETS, "Octets, administratively assigned" },
|
||||||
|
{ SNMP_ENGINEID_FORMAT_LOCAL, "Local engine" },
|
||||||
{ 0, NULL }
|
{ 0, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1420,6 +1422,8 @@ dissect_snmp_engineid(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, int o
|
||||||
len_remain=0;
|
len_remain=0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case SNMP_ENGINEID_FORMAT_LOCAL:
|
||||||
|
break;
|
||||||
case 128:
|
case 128:
|
||||||
/* most common enterprise-specific format: (ucd|net)-snmp random */
|
/* most common enterprise-specific format: (ucd|net)-snmp random */
|
||||||
if ((enterpriseid==2021)||(enterpriseid==8072)) {
|
if ((enterpriseid==2021)||(enterpriseid==8072)) {
|
||||||
|
@ -1446,7 +1450,7 @@ dissect_snmp_engineid(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, int o
|
||||||
case SNMP_ENGINEID_FORMAT_OCTETS:
|
case SNMP_ENGINEID_FORMAT_OCTETS:
|
||||||
default:
|
default:
|
||||||
/* max. 27 bytes, administratively assigned or unknown format */
|
/* max. 27 bytes, administratively assigned or unknown format */
|
||||||
if (len_remain<=27) {
|
if (len_remain>0 && len_remain<=27) {
|
||||||
proto_tree_add_item(tree, hf_snmp_engineid_data, tvb, offset, len_remain, ENC_NA);
|
proto_tree_add_item(tree, hf_snmp_engineid_data, tvb, offset, len_remain, ENC_NA);
|
||||||
offset+=len_remain;
|
offset+=len_remain;
|
||||||
len_remain=0;
|
len_remain=0;
|
||||||
|
|
Loading…
Reference in New Issue