HNHacker News
TopNewBestAskShowJobs

camoberg

10 karma · joined November 1, 2016

submissionscomments
camoberg··on The YANG 1.1 Data Modeling Language
So what you're saying then is that YANG could be a data modeling language for Lisp ;-)
camoberg··on The YANG 1.1 Data Modeling Language
But YANG does not do serialization, that's up to the protocol that acts on the YANG-modelled data sets. Depending on your needs, I do agree that there are good reasons to look at protocols with less overhead (some interesting work is being done with e.g. CoAP/CoMI https://tools.ietf.org/html/draft-vanderstok-core-comi-05) and in most real-life environments I have come across, the latency in making configuration changes to networks are not in the overhead of the protocol, but in the application behaviour. I.e. it takes many seconds for most routers to update their configuration compared to the milliseconds of overhead incurred by protocol serialization. YMMV.

I personally and currently believe we need more context-specific language features for network management than what is available out of the box in Thrift. E.g. I think having the concepts of "configuration", "state data", "rpcs" as first class entities in the language itself is of great value. On the other hand, I can see the value of tool reuse in shops that have invested heavily in Thrift (or grpc/protocol buffers).

I also don't think we need the type of middle-code that you mention, and that's just the side effect of immature implementations. Always avoid intermediary steps if at all possible.

camoberg··on The YANG 1.1 Data Modeling Language
I know that parts of the original design team for YANG are old lisp-fans, but I can't recall the option of developing a lisp-based DSL ever being evaluated. I would personally suggest that the fit would not be very good, since YANG is fundamentally a modeling language that "models the hierarchical organization of data as a tree in which each node has a name, and either a value or a set of child nodes." (https://tools.ietf.org/html/rfc7950#section-4.1).

But I happen to personally think that a datalog- or lisp-based policy language for YANG-modelled data sources would be a very interesting concept.

camoberg··on The YANG 1.1 Data Modeling Language
Well, I would say that we did spend considerable time and energy among peoole with vast experience from designing various kinds of languages before we ended up going down the path towards what became YANG. If you poke around the IETF mailing list archives I think you will find ample amounts of justification before we were given the green light from the IAB.

I meant to say "easily readable in it's native encoding". I.e. Looking at the source in your favourite text editor.

camoberg··on The YANG 1.1 Data Modeling Language
YANG has a distinctly different purpose. XSD, RelaxNG, and some other alternatives were considered during the development of what eventually became YANG back in 2007. We spent quite a bit of time with XML grey beards on this topic in the IETF, and eventually realized that YANG had too many domain specific requirements that it wasn't worth trying to bend existing languages for it.

In my mind, there were two major things that influenced the final decision. First; we wanted it to be easily readable by humans first and foremost, as schemas are written once but read many times. Second; it needed to be able to separate between configuration and state data, and describe Remote Procedure Calls (RPCs) and notifications.

camoberg··on The YANG 1.1 Data Modeling Language
It's a schema language, not a general data encoding language. Widely used for NETCONF[1] and RESTCONF[2].

1. https://tools.ietf.org/html/rfc6241 2. https://tools.ietf.org/html/draft-ietf-netconf-restconf-18)