This sounds like it should be easy, however it is not....
Here are two different ways to do what you want, neither is is easy and both require multiple walks to retrieve the data.
If all of your downstream channels are primary you can do this:
docsIf3MdChCfgIsPriCapableDs (1.3.6.1.4.1.4491.2.1.20.1.5.1.2) with the ifIndex of the Mac Domain in question, anything that is set to True (1) is a Primary Capable downstream.
If you have secondary capable Downstreams they will respond false to the previous query, just like upstream channels. To include those you need to do one of two things, depending on which is easier for you.
Walk IF-MIB::ifType looking for ifIndexes that have a type of docsCableDownstream (128), -- CATV Downstream interface and cross reference it with the docsIf3MdChCfgChIfIndex Index from the previous query docsIf3MdChCfgIsPriCapableDs.
But the real way to do so is this:
Walk the following docsIf3MdNodeStatusMdDsSgId (1.3.6.1.4.1.4491.2.1.20.1.12.1.3) with the Mac Domain's ifIndex as the the first index. Grab the 3rd index docsIf3MdNodeStatusMdCmSgId from that walk and use it for the next query:
Walk the following docsIf3MdDsSgStatusChSetId (1.3.6.1.4.1.4491.2.1.20.1.13.1.2) with Mac Domain ifIndex and docsIf3MdNodeStatusMdDsSgId from previous query as second index. Use this result in next query:
Walk the following docsIf3UsChSetChList (1.3.6.1.4.1.4491.2.1.20.1.22.1) with the Mac Domain ifIndex and the docsIf3MdDsSgStatusChSetId from previous query as second index. This gives you a list of Mac Domain Ids that are in the Downstream SG attached to this mac Domain.
Finally you need to walk docsIf3MdChCfgChId and filter the values that are in docsIf3UsChSetChList, this will give you the ifIndex for all downstream channels (including OFDM) attached to Mac Domain primary or not in the index docsIf3MdChCfgChIfIndex.
This sounds like it should be easy, however it is not....
Here are two different ways to do what you want, neither is is easy and both require multiple walks to retrieve the data.
If all of your downstream channels are primary you can do this:
docsIf3MdChCfgIsPriCapableDs (1.3.6.1.4.1.4491.2.1.20.1.5.1.2) with the ifIndex of the Mac Domain in question, anything that is set to True (1) is a Primary Capable downstream.
If you have secondary capable Downstreams they will respond false to the previous query, just like upstream channels. To include those you need to do one of two things, depending on which is easier for you.
Walk IF-MIB::ifType looking for ifIndexes that have a type of docsCableDownstream (128), -- CATV Downstream interface and cross reference it with the docsIf3MdChCfgChIfIndex Index from the previous query docsIf3MdChCfgIsPriCapableDs.
But the real way to do so is this:
Walk the following docsIf3MdNodeStatusMdDsSgId (1.3.6.1.4.1.4491.2.1.20.1.12.1.3) with the Mac Domain's ifIndex as the the first index. Grab the 3rd index docsIf3MdNodeStatusMdCmSgId from that walk and use it for the next query:
Walk the following docsIf3MdDsSgStatusChSetId (1.3.6.1.4.1.4491.2.1.20.1.13.1.2) with Mac Domain ifIndex and docsIf3MdNodeStatusMdDsSgId from previous query as second index. Use this result in next query:
Walk the following docsIf3UsChSetChList (1.3.6.1.4.1.4491.2.1.20.1.22.1) with the Mac Domain ifIndex and the docsIf3MdDsSgStatusChSetId from previous query as second index. This gives you a list of Mac Domain Ids that are in the Downstream SG attached to this mac Domain.
Finally you need to walk docsIf3MdChCfgChId and filter the values that are in docsIf3UsChSetChList, this will give you the ifIndex for all downstream channels (including OFDM) attached to Mac Domain primary or not in the index docsIf3MdChCfgChIfIndex.