<div dir="ltr"><div class="gmail_extra"><div>Hi Rudra,<br></div><div>Please see inline:<br></div><br></div><div class="gmail_extra">Thanks,<br>Ronak<br></div><div class="gmail_extra"><div class="gmail_quote">  <br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

------------------------------<br>
<br>
Message: 3<br>
Date: Wed, 9 Oct 2013 18:25:15 +0000<br>
From: Rudra Rugge <<a href="mailto:rrugge@juniper.net">rrugge@juniper.net</a>><br>
To: OpenStack Development Mailing List<br>
        <<a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a>><br>
Subject: [openstack-dev] [neutron] Extraroute and router extensions<br>
Message-ID: <<a href="mailto:172AF81C-43C5-42E1-B389-00AF74003B99@juniper.net">172AF81C-43C5-42E1-B389-00AF74003B99@juniper.net</a>><br>
Content-Type: text/plain; charset="us-ascii"<br>
<br>
Updated the subject [neutron]<br>
<br>
Hi All,<br>
<br>
Is the extra route extension always tied to the router extension or<br>
can it live in a separate route-table container. </blockquote><div>[RONAK] - Yes, extra-route is actually a router's route as per following definition from extraroute_db.py<br>class RouterRoute(model_base.BASEV2, models_v2.Route):<br>
    router_id = sa.Column(sa.String(36),<br>                          sa.ForeignKey('<a href="http://routers.id">routers.id</a>',<br>                                        ondelete="CASCADE"),<br>                          primary_key=True)<br>
If extra-route routes<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
are available in separate container then sharing of such<br>
containers across networks is possible.<br></blockquote><div>[RONAK] - Agreed with the idea. Will following work?<br></div><div>class NetworkRoute(model_base.BASEV2, models_v2.Route):<br>   network_id = sa.Column(sa.String(36),<br>
                          sa.ForeignKey(<a href="http://networks.id">networks.id</a>',<br>                                        ondelete="CASCADE"),<br>                          primary_key=True)<br><br></div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Another reason to remove the dependency would be to have<br>
next hops that are not CIDRs. Next-hops should be allowed as<br>
interface or a VM instance such as NAT instance. This would<br>
make the extra route extension more generic.<br></blockquote><div>[RONAK] - Agreed. From db standpoint, nexthop just a 64 byte string. But in extraroute_db.py there is a restriction of nexthop be only CIDR which should be relaxed. Also, I feel taking out this restriction would mean that you could assign a static route with a nexthop prior to an incarnation of the nexthop (ie. VM instance, host interface etc). <br>
</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
This way an extra-route container can be attached/bound to<br>
either a router extension or to a network as well. Many plugins<br>
do not need a separate router entity for most of the inter-network<br>
routing.<br></blockquote><div>[RONAK] - What changes do you have in mind? <br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Thanks,<br>
Rudra<br>
<br>
<br>
<br>
<br>
------------------------------<br>
<br></blockquote></div></div></div>