[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

indexing scheme in draft-ietf-rohc-mib-rtp-06.txt



While reviewing draft-ietf-rohc-mib-rtp-06.txt I noticed something
about the table indexing scheme that does not look quite right.

Here are the relevant extracts (mainly the INDEX clauses) from the
three MIB modules in this draft:

ROHC-MIB DEFINITIONS ::= BEGIN
    ...
rohcChannelEntry OBJECT-TYPE
    ...
    INDEX { ifIndex, rohcChannelID }
    ...
rohcInstanceEntry OBJECT-TYPE
    ...
    INDEX { ifIndex, rohcInstanceType, rohcChannelID }
    ...
rohcProfileEntry OBJECT-TYPE
    ...
    INDEX { ifIndex, rohcChannelID, rohcProfile }
    ...
rohcContextEntry OBJECT-TYPE
    ...
    INDEX { ifIndex, rohcInstanceType, rohcChannelID, rohcContextCID }
    ...
END

ROHC-UNCOMPRESSED-MIB DEFINITIONS ::= BEGIN
    ...
rohcUncmprContextEntry OBJECT-TYPE
    ...
    INDEX { ifIndex, rohcInstanceType, rohcChannelID, rohcContextCID }
    ...
END

ROHC-RTP-MIB DEFINITIONS ::= BEGIN
    ...
rohcRtpContextEntry OBJECT-TYPE
    ...
    INDEX { ifIndex, rohcInstanceType, rohcChannelID, rohcContextCID }
    ...
rohcRtpPacketSizeEntry OBJECT-TYPE
    ...
    INDEX { ifIndex, rohcInstanceType, rohcChannelID,
            rohcContextCID, rohcRtpPacketSize }
    ...
END


Here is my proposed review comment:

- The table indexing scheme uses an inconsistent ordering of index
components.  Specifically, although all tables are indexed by
ifIndex and rohcChannelID, the tables without rohcInstanceType as an
index component all have { ifIndex, rohcChannelID, ... } as a common
prefix, while those with rohcInstanceType do not:  their common
prefix is { ifIndex, rohcInstanceType, rohcChannelID, ... }.  While
this will work, it tends to make the implementation harder than it
needs to be, because there is less indexing code that can be re-used
for the different tables.

Recommendation:  in the tables that have rohcInstanceType as an
index component, change the order of the leading components
from:
    INDEX { ifIndex, rohcInstanceType, rohcChannelID, ... }
to:
    INDEX { ifIndex, rohcChannelID, rohcInstanceType, ... }

The affected row objects are rohcInstanceEntry and rohcContextTable
in the ROHC-MIB module, rohcUncmprContextEntry in the
ROHC-UNCOMPRESSED-MIB module, and rohcRtpContextTable and
rohcRtpPacketSizeTable in the ROHC-RTP-MIB module.


Does this seem reasonable to the other folks who inhabit this list?

Mike Heard