<p dir="ltr">>We ran in to this long ago.</p>
<p dir="ltr">What are some other examples? We've be good about keeping the network L2 only. Segments, VLAN transparency, and other properties of the network are all L2.</p>
<p dir="ltr">The example you gave about needing the network to see the grouping of subnets isn't the network leaking into L3, it's subnets requiring an L2 container. Networks don't depend on subnets, subnets depend on networks. I would rather look at making that dependency nullable and achieving your grouping another way (e.g. subnetpool). </p>
<p dir="ltr">The issue I have with the routed network it's using a network but it ignores any of the properties of the network model because they are L2. So now we have an API that stops making sense for one of the object types (e.g. what would vlan transparency or mtu do on a routed network?), which is something I don't want to see. </p>
<div class="gmail_quote">On Jul 23, 2015 10:35 AM, "Carl Baldwin" <<a href="mailto:carl@ecbaldwin.net">carl@ecbaldwin.net</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Wed, Jul 22, 2015 at 3:00 PM, Kevin Benton <<a href="mailto:blak111@gmail.com">blak111@gmail.com</a>> wrote:<br>
> I proposed the port scheduling RFE to deal with the part about selecting a<br>
> network that is appropriate for the port based on provided hints and<br>
> host_id. [1]<br>
<br>
Thanks for the pointer. I hadn't paid much attention to this RFE yet.<br>
<br>
>>the neutron network might have been conceived as being just "a broadcast<br>
>> domain" but, in practice, it is L2 and L3.<br>
><br>
> I disagree with this and I think we need to be very clear on what our API<br>
> constructs mean. If we don't, we will have constant proposals to smear the<br>
> boundaries between things, which is sort of what we are running into<br>
> already.<br>
<br>
We ran in to this long ago.<br>
<br>
> Today I can create a standalone network and attach ports to it. That network<br>
> is just an L2 broadcast domain and has no IP addresses or any L3 info<br>
> associated with it, but the ports can communicate via L2. The network<br>
> doesn't know anything about the l3 addresses and just forwards the traffic<br>
> according to L2 semantics.<br>
<br>
Sure, a network *can* be just L2. But, my point is that when you<br>
start adding L3 on top of that network by adding subnets, the subnets<br>
don't fully encapsulate the L3 part. A subnet is just a cidr but<br>
that's not enough. To illustrate, the IPv4 part of the L3 network can<br>
have several cidrs lumped together. The full IPv4 story on that<br>
network includes the collection of all of the IPv4 subnets associated<br>
to the network. That collection belongs to the network. Without<br>
going to the network, there is no way to describe L3 addresses that is<br>
more than just a single cidr.<br>
<br>
> The neutron subnet provides L3 addressing info that can be associated with<br>
> an arbitrary neutron network. To route between subnets, we attach routers to<br>
> subnets. It doesn't matter if those subnets are on the same or different<br>
> networks, because it's L3 and it doesn't matter.<br>
><br>
> It is conceivable that we could remove the requirement for a subnet to have<br>
> an underlying network in the fully-routed case. However, that would mean we<br>
> would need to remove the requirement for a port to have a network as well<br>
> (unless this is only used for floating IPs).<br>
<br>
If we remove the requirement then we have no way to group cidrs<br>
together. A single cidr isn't sufficient to express the addressing<br>
needed for an L3 network. My L3 network could be a bunch of disjoint<br>
or fragmented cidrs lumped together. They should all be considered<br>
equivalent addresses, they just aren't lined up in a perfect little<br>
cidr.<br>
<br>
John Belamaric made a good point that the closest thing that we have<br>
to representing an L3 domain right now is a subnet pool. I'm still<br>
thinking about how we might be able to use this concept to help out<br>
this situation.<br>
<br>
Carl<br>
<br>
> 1. <a href="https://bugs.launchpad.net/neutron/+bug/1469668" rel="noreferrer" target="_blank">https://bugs.launchpad.net/neutron/+bug/1469668</a><br>
<br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</blockquote></div>