Hello list, I reply to my own message since I have been spending time specifying an implementation of this module recently on the AFTR side and I just can't shake the thought that the YANG module organization is wrong.
_From the AFTR perspective_, identifying binding table entries by the B4 IPv6 address is the wrong thing. It is not sufficient, it is not necessary, and it is not appropriate. Not sufficient: in the data plane, when encapsulating, you don't know the B4 IPv6 address. You identify the softwire by the IPv4+port. You can use this same strategy to identify the softwire in the decapsulation direction. Not necessary: Because you can identify the softwire by IPv4+PSID, and because the binding table can be quite big (millions of entries), if you can avoid duplicating this table just to allow binding table entries to be looked up by IPv6, that would be good. ietf-softwire seems to require this reverse mapping; when a configuration agent gets a request to set /softwire-config/binding/br/br-instances/0/binding-table/127:10:20:30:40:50:60:128/port-set/psid to 1, you would need a table keyed by IPv6 address. Not appropriate: consider, say we get this "set the PSID of the softwire 127:10:20:30:40:50:60:128 to 1" request, and we actually do manage to locate the binding entry for this softwire. To validate that the change is consistent, we only need to do one thing: check that this IPv4/PSID/psid-offset/psid-length doesn't overlap with any other softwire. We don't need to validate anything about the IPv6 address of the softwire. This again hints that it's the IPv4+PSID that should be the key, and probably that within each IPv4 address, all softwires have the same psid-offset/psid-length. The natural way to identify and manage softwires from an AFTR perspective is by IPv4 and PSID. If the YANG module remains how it is, that's fine -- it just means that we're going to have to serialize all changes through one part of the configuration agent so that we can keep our IPv6->softwire mapping in precise sync with the IPv4,port->softwire map used by the data plane. Andy _______________________________________________ Softwires mailing list [email protected] https://www.ietf.org/mailman/listinfo/softwires
