Subject: [Roll] MOP value calculation with MOPex

From: Rahul Arvind Jadhav <[email-masked]>
Date: Wed, 31 Jul 2019 07:34:25 +0000

Hello All,

During ROLL session, it was suggested that using "Final MOP = Base MOP + MOPex" may not be a good idea, since the implementation becomes more complex.

My initial reasoning behind using such a scheme/calculation was to:

a.       Reuse all the values in base MOP. We do not lose a single value i.e., there is no MOP value reserved for extn. If base MOP value is 7 and if MOPex is absent then the final MOP is 7.

b.      When anyone references a MOP value X, it need not be referred to in context to base MOP or extended MOP. For e.g., when we say MOP=11 ... there will be only one Mode of Operation it refers to and need not be specified in the context of base or extended MOP.
Essentially we keep using the base MOP and add up from MOPex (if present) to derive final MOP.

How will the implementation handle it?

1.       Process DIO base object and get the base MOP.

2.       Keep processing DIO Options and on encountering MOPex add the MOPex value to the same var in step 1.

3.       At the end of DIO message processing check if the node supports MOP.
Section 3.2. makes it clear that if base MOP is 7 and MOPex is not present then the final MOP is 7.

Another way of handling this would be, If MOPex is present then ignore base MOP and just use the value of MOPex as MOP. In this case we will lose out on 7 values of mop.
Please share your thoughts on this.

Regards,
Rahul