Skip to content

Commit d44476c

Browse files
committed
feat: set 65134 as IANA PEN
1 parent 2a738ae commit d44476c

6 files changed

Lines changed: 23 additions & 24 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4343

4444
- **SNMP AgentX Sub-Agent**: MIB-based monitoring via net-snmpd (requires `snmp` feature, Unix only)
4545
- Minimal AgentX protocol implementation (RFC 2741) with no external SNMP crate dependency
46-
- STAMP-SUITE-MIB under enterprise OID `.1.3.6.1.4.1.99999` with SMIv2 definition (`mibs/STAMP-SUITE-MIB.mib`)
46+
- STAMP-SUITE-MIB under enterprise OID `.1.3.6.1.4.1.65134` with SMIv2 definition (`mibs/STAMP-SUITE-MIB.mib`)
4747
- Reflector subtree: configuration scalars, packet counters (received/reflected/dropped), active session count, uptime
4848
- Session table: per-client address, port, packet counts, last sequence number, last active time
4949
- Sender subtree: configuration scalars, packets sent/received/lost, RTT min/max/avg, jitter, loss percentage

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,7 @@ stamp-suite -i --snmp
463463
stamp-suite -i --snmp --snmp-socket /var/agentx/master
464464

465465
# Query via net-snmp tools
466-
snmpwalk -v2c -c public localhost .1.3.6.1.4.1.99999
466+
snmpwalk -v2c -c public localhost .1.3.6.1.4.1.65134
467467
```
468468

469469
The MIB (provided in `mibs/STAMP-SUITE-MIB.mib`) exposes:

mibs/STAMP-SUITE-MIB.mib

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
-- Copyright (c) 2026 Piotr "asmie" Olszewski
55
-- Licensed under MIT License
66
--
7-
-- Enterprise OID: 1.3.6.1.4.1.99999 (placeholder PEN)
8-
-- Apply for a real PEN at https://pen.iana.org/ for production use.
7+
-- Enterprise OID: 1.3.6.1.4.1.65134 (IANA PEN 65134)
98
-- *****************************************************************
109

1110
STAMP-SUITE-MIB DEFINITIONS ::= BEGIN
@@ -35,7 +34,7 @@ stampSuiteMIB MODULE-IDENTITY
3534
operational counters, and per-session state."
3635
REVISION "202501010000Z"
3736
DESCRIPTION "Initial version."
38-
::= { enterprises 99999 }
37+
::= { enterprises 65134 }
3938

4039
-- ===================================================================
4140
-- Top-level structure

src/snmp/agentx.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -627,8 +627,8 @@ mod tests {
627627

628628
#[test]
629629
fn test_oid_encode_decode_roundtrip_internet() {
630-
// OID under internet prefix: 1.3.6.1.4.1.99999
631-
let oid = Oid::from_slice(&[1, 3, 6, 1, 4, 1, 99999]);
630+
// OID under internet prefix: 1.3.6.1.4.1.65134
631+
let oid = Oid::from_slice(&[1, 3, 6, 1, 4, 1, 65134]);
632632
let encoded = encode_oid(&oid, false);
633633
let (decoded, include, consumed) = decode_oid(&encoded).unwrap();
634634
assert_eq!(decoded, oid);
@@ -679,7 +679,7 @@ mod tests {
679679
#[test]
680680
fn test_varbind_encode_integer() {
681681
let vb = VarBind {
682-
oid: Oid::from_slice(&[1, 3, 6, 1, 4, 1, 99999, 1, 1, 1, 1]),
682+
oid: Oid::from_slice(&[1, 3, 6, 1, 4, 1, 65134, 1, 1, 1, 1]),
683683
value: VarBindValue::Integer(42),
684684
};
685685
let encoded = encode_varbind(&vb);
@@ -695,7 +695,7 @@ mod tests {
695695
#[test]
696696
fn test_varbind_encode_counter64() {
697697
let vb = VarBind {
698-
oid: Oid::from_slice(&[1, 3, 6, 1, 4, 1, 99999, 1, 1, 2, 1]),
698+
oid: Oid::from_slice(&[1, 3, 6, 1, 4, 1, 65134, 1, 1, 2, 1]),
699699
value: VarBindValue::Counter64(123456789),
700700
};
701701
let encoded = encode_varbind(&vb);
@@ -708,7 +708,7 @@ mod tests {
708708
#[test]
709709
fn test_varbind_encode_octet_string() {
710710
let vb = VarBind {
711-
oid: Oid::from_slice(&[1, 3, 6, 1, 4, 1, 99999]),
711+
oid: Oid::from_slice(&[1, 3, 6, 1, 4, 1, 65134]),
712712
value: VarBindValue::OctetString(b"hello".to_vec()),
713713
};
714714
let encoded = encode_varbind(&vb);
@@ -746,7 +746,7 @@ mod tests {
746746

747747
#[test]
748748
fn test_search_range_decode() {
749-
let start = Oid::from_slice(&[1, 3, 6, 1, 4, 1, 99999]);
749+
let start = Oid::from_slice(&[1, 3, 6, 1, 4, 1, 65134]);
750750
let end = Oid::from_slice(&[1, 3, 6, 1, 4, 1, 100000]);
751751

752752
let mut buf = Vec::new();
@@ -762,7 +762,7 @@ mod tests {
762762
#[test]
763763
fn test_oid_starts_with() {
764764
let parent = Oid::from_slice(&[1, 3, 6, 1, 4]);
765-
let child = Oid::from_slice(&[1, 3, 6, 1, 4, 1, 99999]);
765+
let child = Oid::from_slice(&[1, 3, 6, 1, 4, 1, 65134]);
766766
let other = Oid::from_slice(&[1, 3, 6, 2, 1]);
767767

768768
assert!(child.starts_with(&parent));
@@ -772,8 +772,8 @@ mod tests {
772772

773773
#[test]
774774
fn test_oid_display() {
775-
let oid = Oid::from_slice(&[1, 3, 6, 1, 4, 1, 99999]);
776-
assert_eq!(format!("{}", oid), ".1.3.6.1.4.1.99999");
775+
let oid = Oid::from_slice(&[1, 3, 6, 1, 4, 1, 65134]);
776+
assert_eq!(format!("{}", oid), ".1.3.6.1.4.1.65134");
777777
}
778778

779779
#[test]
@@ -788,9 +788,9 @@ mod tests {
788788
#[test]
789789
fn test_oid_prefix_optimization() {
790790
// OID .1.3.6.1.4 should use prefix byte 4
791-
let oid = Oid::from_slice(&[1, 3, 6, 1, 4, 1, 99999]);
791+
let oid = Oid::from_slice(&[1, 3, 6, 1, 4, 1, 65134]);
792792
let encoded = encode_oid(&oid, false);
793-
// n_subid should be 2 (only sub-ids after the prefix: 1, 99999)
793+
// n_subid should be 2 (only sub-ids after the prefix: 1, 65134)
794794
let n_subid = u32::from_be_bytes([encoded[0], encoded[1], encoded[2], encoded[3]]);
795795
assert_eq!(n_subid, 2);
796796
// prefix byte

src/snmp/handler.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ mod tests {
378378
fn test_get_unknown_oid() {
379379
let state = make_test_state(true);
380380
let handler = StampMibHandler::new(state);
381-
let unknown = Oid::from_slice(&[1, 3, 6, 1, 4, 1, 99999, 99, 99]);
381+
let unknown = Oid::from_slice(&[1, 3, 6, 1, 4, 1, 65134, 99, 99]);
382382
let vb = handler.get(&unknown);
383383
assert!(matches!(vb.value, VarBindValue::NoSuchObject));
384384
}

src/snmp/oids.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
//! OID constants for the STAMP-SUITE-MIB.
22
//!
3-
//! Enterprise OID: 1.3.6.1.4.1.99999 (placeholder PEN).
3+
//! Enterprise OID: 1.3.6.1.4.1.65134 (IANA PEN 65134).
44
55
use super::agentx::Oid;
66

7-
/// Base enterprise OID: .1.3.6.1.4.1.99999
8-
const BASE: &[u32] = &[1, 3, 6, 1, 4, 1, 99999];
7+
/// Base enterprise OID: .1.3.6.1.4.1.65134
8+
const BASE: &[u32] = &[1, 3, 6, 1, 4, 1, 65134];
99

1010
/// Root of the STAMP-SUITE-MIB subtree, used for AgentX registration.
1111
pub fn stamp_suite_root() -> Oid {
@@ -68,14 +68,14 @@ pub fn stamp_refl_uptime() -> Oid {
6868

6969
// -- Reflector Session Table (.1.1.3.1.*) --
7070

71-
/// Build a session table entry OID: `.1.3.6.1.4.1.99999.1.1.3.1.{column}.{index}`
71+
/// Build a session table entry OID: `.1.3.6.1.4.1.65134.1.1.3.1.{column}.{index}`
7272
pub fn stamp_refl_session_entry(column: u32, index: u32) -> Oid {
7373
let mut v = BASE.to_vec();
7474
v.extend_from_slice(&[1, 1, 3, 1, column, index]);
7575
Oid(v)
7676
}
7777

78-
/// Session table entry prefix (for GetNext walking): .1.3.6.1.4.1.99999.1.1.3.1
78+
/// Session table entry prefix (for GetNext walking): .1.3.6.1.4.1.65134.1.1.3.1
7979
pub fn stamp_refl_session_table_prefix() -> Oid {
8080
let mut v = BASE.to_vec();
8181
v.extend_from_slice(&[1, 1, 3, 1]);
@@ -205,8 +205,8 @@ mod tests {
205205
#[test]
206206
fn test_session_entry_oid() {
207207
let oid = stamp_refl_session_entry(2, 5);
208-
// Should be .1.3.6.1.4.1.99999.1.1.3.1.2.5
209-
assert_eq!(oid.0, vec![1, 3, 6, 1, 4, 1, 99999, 1, 1, 3, 1, 2, 5]);
208+
// Should be .1.3.6.1.4.1.65134.1.1.3.1.2.5
209+
assert_eq!(oid.0, vec![1, 3, 6, 1, 4, 1, 65134, 1, 1, 3, 1, 2, 5]);
210210
}
211211

212212
#[test]

0 commit comments

Comments
 (0)