
Freek, I like option B. It is more complicated, but looks more accurate to me. I propose to rename LAN_A as forwarding_rule_A and so on. MyFirstLAN elements { forwarding_rule_A, forwarding_rule_B, forwarding_rule_C, forwarding_rule_C } The other option would be to add a rule to your option A which states that forwarding to yourself is not allowed. Things could get ugly if you try and model spanning tree forwarding rules! ... but fortunately I think (hope) this is not necessary. I realize option B is more complicated than option A, but for NSI I don't see a lot of demand for LANs, so better to be accurate if somewhat more cumbersome. Guy -----Original Message----- From: Freek Dijkstra [mailto:Freek.Dijkstra@sara.nl] Sent: 07 August 2009 15:16 To: Network Markup Language Working Group Subject: [Nml-wg] Use case: broadcast network (single layer) Hi all, Yet another single layer use case (sorry to procrastinate on the multi layer use case, I want to make sure that single layer is tackled before diving in the hard stuff). Let's start with a single bidirectional link (= 2 unidirectional links) between two nodes: ----------> Node A Node B <---------- Each Node here has two (unidirectional!) interfaces: Node A hasPort a_out and a_in Node B hasPort b_out and b_in The relations here are: Node A hasPort a_out Node A hasPort a_in Node B hasPort b_out Node B hasPort b_in a_out source Link A-B b_in sink Link A-B b_out source Link B-A a_in sink Link B-A So far, so good. Since we want to model Ethernet, I think we should be able to model broadcast networks. Imagine an old-fashioned LAN: Node A Node B | | --+-----+-------------+---+-- | | Node C Node D Again, each Node here has two (unidirectional!) interfaces: Node A hasPort a_out and a_in Node B hasPort b_out and b_in Node C hasPort c_out and c_in Node D hasPort d_out and d_in Of course each *_out is the egress port, with each *_in is the ingress port. Now how do I describe this LAN? (A) As a single link, or (B) as multiple links? Let's first try (A) as a single link: Node A hasPort a_out Node A hasPort a_in Node B hasPort b_out Node B hasPort b_in Node C hasPort c_out Node C hasPort c_in Node D hasPort d_out Node D hasPort d_in a_out source MyFirstLAN b_out source MyFirstLAN c_out source MyFirstLAN d_out source MyFirstLAN a_in sink MyFirstLAN b_in sink MyFirstLAN c_in sink MyFirstLAN d_in sink MyFirstLAN But is this correct? Semantically, this would imply that if a_out is sending data, it is also received by a_in. Let's also try to describe this (B) as multiple links: Node A hasPort a_out Node A hasPort a_in Node B hasPort b_out Node B hasPort b_in Node C hasPort c_out Node C hasPort c_in Node D hasPort d_out Node D hasPort d_in a_out source LAN_A b_in sink LAN_A c_in sink LAN_A d_in sink LAN_A b_out source LAN_B a_in sink LAN_B c_in sink LAN_B d_in sink LAN_B c_out source LAN_C a_in sink LAN_C b_in sink LAN_C d_in sink LAN_C d_out source LAN_D a_in sink LAN_D b_in sink LAN_D c_in sink LAN_D MyFirstLAN elements {LAN_A, LAN_B, LAN_C, LAN_D} This later description is closer to the concept of Unidirectional Link as is currently in the schema. The schema further allows grouping to a (Bidirectional) Link. That's what I added on the last line. What are your preferences? I see problems with both concepts. Regards, Freek _______________________________________________ nml-wg mailing list nml-wg@ogf.org http://www.ogf.org/mailman/listinfo/nml-wg