HomeDefectsLIN1023-2662
Fixed

LIN1023-2662 : ipIfStatsHCOutForwDatagrams

Created: Nov 14, 2023    Updated: Jan 12, 2024
Resolved Date: Dec 28, 2023
Found In Version: 10.23.30.3
Fix Version: 10.23.30.5
Severity: Standard
Applicable for: Wind River Linux LTS 23
Component/s: Kernel

Description

We’re trying to introduce ipIfStatsHCOutForwDatagrams for InterfaceIPv4 but got some problems when testing packets that need to be fragmented and setting Don’t Fragment. According to below discussion I thought that WRL calculates OutForwDatagrams = InForwDatagrams – InNoRoutes but then we discovered that InForwDatagrams are not supported in our snmp. So the question is how OutForwDatagrams is calculated by WRL and if it is really the case that we don’t get InForwDatagrams?

The actual problem reported by the team:

I am working on “MR10024 SP1 US10: Add support for two counters for SSC InterfaceIPv4.”

Commit is ready ([https://gerrit.ericsson.se/#/c/15475946/]) but I noticed different behavior for G3 and SSC for counter: ipIfStatsHCOutForwDatagrams.

When DF flag is unset (testFragmentationForForwardingPacketsWithDfUnset) counter is incremented in the same way for G3 and SSC.

When DF flag is set (testFragmentationForForwardingPacketsWithDfSet) and MTU is greater than packet size:

On G3 ipIfStatsHCOutForwDatagrams is incremented.
On SSC ipIfStatsHCOutForwDatagrams is incremented.
On each target datagram is forwarded.

But when DF flag is set (testFragmentationForForwardingPacketsWithDfSet) and MTU is smaller than packet size (datagram needs to be fragmented to be forwarded but DF disallows fragmentation):

On G3 ipIfStatsHCOutForwDatagrams is still incremented even though datagram was not forwarded.
On SSC ipIfStatsHCOutForwDatagrams is not incremented.
On both targets datagram is not forwarded.

In NDS counter is described as:

“The number of datagrams for which this entity was not their final IP destination and for which it was successful in finding a path to their final destination. Specification: RFC 4293, section 5.

Counter type: CC/SUM

Counter is reset after measurement period: Yes”

Test case expects counter to be incremented.

But I am not sure if the behavior for G3 is correct. Referring to NDS and RFC We should expect the counter to be incremented when the path to the datagram’s final destination exists. But shouldn’t it be valid path including MTU requirements? So, DUT at least tries to forward datagram? As it behaves in the case of SSC.

Steps to Reproduce

See description