TL/DR

The absence of in-stack signaling of MPU/MRU in vertical-interface design of message-oriented protocols makes things really hard .

It pushes deterministic calculations about optimal interface MTU into the hands and heads of operators who often don’t have the information they need to make those calculations

Verbose

Lack of Downstack MPU Visibility
  • Knowledge of If:L( **n** -1 ) M_P_U is required in order to infer the validity of an If:L( **n** ) interface M_T_U value.

  • We don’t expose MPU to upstac**k-adjacent interfaces

  • As a result, If:L(n) MTU configuration requires inferences made at “Layer 8”, based on detailed knowledge of L(n-1)’s operation

Variable Encapsulation Overhead
  • This would be a non-issue if we had up-stack signaling of MPU, to enable auto-configuration of _interface _ MTU _.
  • Instead, network operators have a more complicated analysis for selecting an L(**n**) MTU if L(**n**) has variable encapsulation overhead
  • Is If:L(n-1)’s MPU static or variable ? - If static, infer the actual If:L(n-1) MPU (by inferring encapsulation overhead from configuration) - If variable, infer the lowest _ possible_ If:L(n-1) MPU
  • Use inferred If:L(n-1) MPU as If:L(n) interface MTU
MRU Opacity
  • This isn’t really a vertical-interface issue
    • It’s a Layer-8 issue
  • We need to know If:L(n)’s M_R_U to inform our inferred optimal interface MTUs for:
    • If:L(n)a->z
    • If:L(n-1)a->z
    • If:L(n+1)a->z
Current Workarounds
  • Manage interface MTU at Layer-8
    • Do the math, to the best of your ability and knowledge
    • When all else fails, use trial-and-error to zero in on actual effective MTU and set that as interface MTU
  • Strive for consistent end-to-end L(n-1) maximum payload unit across your L(n) networks
    • If it’s always the same value, you only have to do the math once