From: OPSAWG <[email protected]> on behalf of Roque Gagliano (rogaglia)
<[email protected]>
Sent: 09 May 2020 16:08
Hello,
I implemented the “draft-ietf-opsawg-l3sm-l3nm-03” (Revision 2020-04-03) on
Cisco NSO and Cisco Crosswork Network Controller. I am happy to fill any forms
(sorry but new to the WG).
The good news is that I did not find any syntax problem and was able to compile
and implement the full model.
I do have two on this new version for the WG:
1) Major: Why importing the "ietf-l3vpn-svc" module?
I think this is a major problem as it violates the architecture in Section 4
and the note in section 5 that states: "Note that the use of L3NM within a
Service Provider does assume nor preclude exposing the VPN service via L3SM.".
If there is no dependencies with L3SM, we should not force the network
controller to support it, neither its libraries. I noted that the SVC data
model is mainly important to have a common library of types, identities and
features. However, the correct implementation would be a separate YANG module
for these libraries that both L3SM and L3NM import from.
<tp>
Well there are dependencies as you state, that a raft of feature and identity
are referenced from the imported module; earlier versions of l3sm-l3nm did not
do this. It is typical of the way the IETF works, of the nature of Working
Groups, that a better arrangement of the work is not considered until too
late. It is absurd, really, that a L3SM finds itself defining a list of
topologies, a list of routing protocols and so on. RFC8299 did not AFAIK come
out of a Working Group; I knew of the I-D, draft-wu-... waited for a WG to
adopt it and then the RFC just appeared; too late to change it. To me it is
dead obvious that it should not be a single monolithic module, it should have
been divided up. But even within a WG it is a struggle to get defined a set of
building blocks which other work can build on, as has happened in a number of
WG. The definition of YANG types in CCAMP and TEAS comes to mind.
So, is it worth creating such building blocks in this case? Trouble is, they
cut across WG, there is no obvious home for them, nowhere to come to agreement
on what they should be
Tom Petch
All in all, importing the SVC module breaks the separation between the two
layers. If we would like to re-use types, identities, features definitions, a
separate module for them should be defined.
2) Minor: RD Semantic:
The document proposes:
leaf rd {
type union {
type rt-types:route-distinguisher;
type empty;
}
}
Leafs have an implicit empty state (unless you use the default
statement) but the authors are trying to give a specific meaning to the empty
state by using a union statement. I believe a much natural representation would
be:
leaf rd {
type rt-types:route-distinguisher;
}
leaf auto-assign-rd {
when "not(../rd)";
type boolean;
}
Regards,
Roque
_______________________________________________
OPSAWG mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/opsawg
_______________________________________________
OPSAWG mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/opsawg