)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"489061326bc1f8c8aa05cd1e7b9da7dd23cd8014","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Routing networks can be used to reclaim IP address waste for some"},{"line_number":10,"context_line":"router ports and can eventually support L3-only routed subnets that"},{"line_number":11,"context_line":"span L2 networks."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I91713418b9f2ddd04aa9e9abc2f3376b28ffc75f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bab921fb_c1749f9d","line":11,"updated":"2015-04-23 20:19:22.000000000","message":"ApiImpact","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"0a3b48d83d596e5c05062e4036c1b064ba70d871","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Routing networks can be used to reclaim IP address waste for some"},{"line_number":10,"context_line":"router ports and can eventually support L3-only routed subnets that"},{"line_number":11,"context_line":"span L2 networks."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I91713418b9f2ddd04aa9e9abc2f3376b28ffc75f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7ad8896b_c28172fd","line":11,"in_reply_to":"bab921fb_c1749f9d","updated":"2015-05-11 18:48:15.000000000","message":"Done","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"}],"specs/liberty/routing-networks.rst":[{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"899294f81ef870a85727fdb546dd65fa31cd7d84","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Routing Networks"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/neutron/+spec/routing-networks"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":":Author: Carl Baldwin \u003ccarl.baldwin@hp.com\u003e"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"dac4157f_1cd890ee","line":11,"updated":"2015-04-22 01:19:36.000000000","message":"not available yet?","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"0a3b48d83d596e5c05062e4036c1b064ba70d871","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Routing Networks"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/neutron/+spec/routing-networks"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":":Author: Carl Baldwin \u003ccarl.baldwin@hp.com\u003e"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad8896b_e2ba2ec0","line":11,"in_reply_to":"3acd31a7_dc0c21ee","updated":"2015-05-11 18:48:15.000000000","message":"Done","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"540807faf4954a22d18a2623692b9ac323068540","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Routing Networks"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/neutron/+spec/routing-networks"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":":Author: Carl Baldwin \u003ccarl.baldwin@hp.com\u003e"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3acd31a7_dc0c21ee","line":11,"in_reply_to":"dac4157f_1cd890ee","updated":"2015-05-05 18:39:37.000000000","message":"Waiting resolution to Kyle\u0027s spec proposal policy document.","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"c4ade64c39a5ef0e870228cc33384bf666ad0833","unresolved":false,"context_lines":[{"line_number":66,"context_line":"#. Eliminate unnecessary public IP address consumption by DVR on compute nodes."},{"line_number":67,"context_line":"#. Integrating L3 dynamically routed networks."},{"line_number":68,"context_line":"#. Eliminate the need for an extra fip namespace in DVR."},{"line_number":69,"context_line":"#. Eliminate all unnecessary public IP address consumption in IPv4 space."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Only first of these will be completed by this blueprint.  The others will"},{"line_number":72,"context_line":"leverage this effort heavily but will be completed under other blueprints."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3ab451fb_56b62d8b","line":69,"updated":"2015-04-17 19:59:12.000000000","message":"It\u0027s possible only if snat is disabled?","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"0a3b48d83d596e5c05062e4036c1b064ba70d871","unresolved":false,"context_lines":[{"line_number":66,"context_line":"#. Eliminate unnecessary public IP address consumption by DVR on compute nodes."},{"line_number":67,"context_line":"#. Integrating L3 dynamically routed networks."},{"line_number":68,"context_line":"#. Eliminate the need for an extra fip namespace in DVR."},{"line_number":69,"context_line":"#. Eliminate all unnecessary public IP address consumption in IPv4 space."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Only first of these will be completed by this blueprint.  The others will"},{"line_number":72,"context_line":"leverage this effort heavily but will be completed under other blueprints."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad8896b_1d5fdf0f","line":69,"in_reply_to":"3ab451fb_11278f13","updated":"2015-05-11 18:48:15.000000000","message":"This etherpad [1] was created about a year ago to explore alternatives to default SNAT.  Some will support routers with no dedicated IP.\n\n[1] https://etherpad.openstack.org/p/decentralized-snat","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"b48e3cef16818451864fa4443d2892c76e38a0b5","unresolved":false,"context_lines":[{"line_number":66,"context_line":"#. Eliminate unnecessary public IP address consumption by DVR on compute nodes."},{"line_number":67,"context_line":"#. Integrating L3 dynamically routed networks."},{"line_number":68,"context_line":"#. Eliminate the need for an extra fip namespace in DVR."},{"line_number":69,"context_line":"#. Eliminate all unnecessary public IP address consumption in IPv4 space."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Only first of these will be completed by this blueprint.  The others will"},{"line_number":72,"context_line":"leverage this effort heavily but will be completed under other blueprints."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3ab451fb_11278f13","line":69,"in_reply_to":"3ab451fb_56b62d8b","updated":"2015-04-17 20:20:11.000000000","message":"True, we\u0027ll have to have some alternative or live without the default SNAT feature.  The default SNAT feature of Neutron depends on a dedicated public IP on the router.  There was a post to the operators ML that suggested using NAT outside of the virtual routers [1].  Something I\u0027ve also suggested in the past.\n\nSNAT through a floating IP still works for the VM port bound to it.\n\n[1] http://lists.openstack.org/pipermail/openstack-operators/2015-April/006743.html","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"b614bf96d1db6f4d6669ec4b87c70240d887e44e","unresolved":false,"context_lines":[{"line_number":69,"context_line":"#. Eliminate all unnecessary public IP address consumption in IPv4 space."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Only first of these will be completed by this blueprint.  The others will"},{"line_number":72,"context_line":"leverage this effort heavily but will be completed under other blueprints."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Router Primary Address"},{"line_number":75,"context_line":"______________________"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dac4157f_317de91c","line":72,"updated":"2015-04-21 06:46:01.000000000","message":"can you provide references to other blueprints, if you have them already?","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"0a3b48d83d596e5c05062e4036c1b064ba70d871","unresolved":false,"context_lines":[{"line_number":69,"context_line":"#. Eliminate all unnecessary public IP address consumption in IPv4 space."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Only first of these will be completed by this blueprint.  The others will"},{"line_number":72,"context_line":"leverage this effort heavily but will be completed under other blueprints."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Router Primary Address"},{"line_number":75,"context_line":"______________________"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad8896b_fd9ad3c4","line":72,"in_reply_to":"dac4157f_317de91c","updated":"2015-05-11 18:48:15.000000000","message":"Done","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":9444,"name":"gustavo panizzo","email":"gfa@zumbi.com.ar","username":"gfa"},"change_message_id":"d43ed11170920779600d017c16a29dd8ddefcdfd","unresolved":false,"context_lines":[{"line_number":117,"context_line":"_______________"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"A backing network is a network which uses only link-local or some other form of"},{"line_number":120,"context_line":"private IP address space.  The important aspect of this address space is that"},{"line_number":121,"context_line":"it must not conflict with any destination addresses which might be routed"},{"line_number":122,"context_line":"across the network."},{"line_number":123,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"9aa53dc9_7d718943","line":120,"updated":"2015-04-10 06:01:33.000000000","message":"i suggest to use RFC 6598 ip address (100.64.0.0/10)","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"e28af59b4d4f996e1f7c12361f14c6ed07733f54","unresolved":false,"context_lines":[{"line_number":117,"context_line":"_______________"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"A backing network is a network which uses only link-local or some other form of"},{"line_number":120,"context_line":"private IP address space.  The important aspect of this address space is that"},{"line_number":121,"context_line":"it must not conflict with any destination addresses which might be routed"},{"line_number":122,"context_line":"across the network."},{"line_number":123,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aaa499b_d5831755","line":120,"in_reply_to":"9aa53dc9_7d718943","updated":"2015-04-14 22:19:13.000000000","message":"L172","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"40f6efd1c0abab7b85d24047389eaabd97f0d9ce","unresolved":false,"context_lines":[{"line_number":121,"context_line":"it must not conflict with any destination addresses which might be routed"},{"line_number":122,"context_line":"across the network."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"When a router is connected to a network with a backing network, a port is"},{"line_number":125,"context_line":"created on the backing network.  Internally, the router will use this as its"},{"line_number":126,"context_line":"primary address on the interface.  If the router does not need to be addressed"},{"line_number":127,"context_line":"directly on the network then no public IP address will be allocated for the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dac4157f_f1c89176","line":124,"updated":"2015-04-21 06:43:33.000000000","message":"i\u0027m not sure what a front network provides.  is it just an attach point for the backing network?","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"0a3b48d83d596e5c05062e4036c1b064ba70d871","unresolved":false,"context_lines":[{"line_number":121,"context_line":"it must not conflict with any destination addresses which might be routed"},{"line_number":122,"context_line":"across the network."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"When a router is connected to a network with a backing network, a port is"},{"line_number":125,"context_line":"created on the backing network.  Internally, the router will use this as its"},{"line_number":126,"context_line":"primary address on the interface.  If the router does not need to be addressed"},{"line_number":127,"context_line":"directly on the network then no public IP address will be allocated for the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad8896b_3d905b95","line":124,"in_reply_to":"dac4157f_f1c89176","updated":"2015-05-11 18:48:15.000000000","message":"I think it is the opposite.  The front network is the public network that will be seen by tenants as the \"external network\".  The backing network is the attachment point.","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"40f6efd1c0abab7b85d24047389eaabd97f0d9ce","unresolved":false,"context_lines":[{"line_number":122,"context_line":"across the network."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"When a router is connected to a network with a backing network, a port is"},{"line_number":125,"context_line":"created on the backing network.  Internally, the router will use this as its"},{"line_number":126,"context_line":"primary address on the interface.  If the router does not need to be addressed"},{"line_number":127,"context_line":"directly on the network then no public IP address will be allocated for the"},{"line_number":128,"context_line":"router.  Thus, a public IP is saved."}],"source_content_type":"text/x-rst","patch_set":1,"id":"dac4157f_515cdd24","line":125,"updated":"2015-04-21 06:43:33.000000000","message":"can other (non-router) ports be connected to the network?","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"0a3b48d83d596e5c05062e4036c1b064ba70d871","unresolved":false,"context_lines":[{"line_number":122,"context_line":"across the network."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"When a router is connected to a network with a backing network, a port is"},{"line_number":125,"context_line":"created on the backing network.  Internally, the router will use this as its"},{"line_number":126,"context_line":"primary address on the interface.  If the router does not need to be addressed"},{"line_number":127,"context_line":"directly on the network then no public IP address will be allocated for the"},{"line_number":128,"context_line":"router.  Thus, a public IP is saved."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad8896b_5d48c72d","line":125,"in_reply_to":"dac4157f_515cdd24","updated":"2015-05-11 18:48:15.000000000","message":"The owner of the backing network -- who is probably the operator -- could connect to it.  It may be useful to attach a VM or something to monitor the network, I don\u0027t know.\n\nBacking networks shouldn\u0027t be shared, they are more of a behind the scenes kind of network.  They shouldn\u0027t be marked shared nor external.","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"40f6efd1c0abab7b85d24047389eaabd97f0d9ce","unresolved":false,"context_lines":[{"line_number":125,"context_line":"created on the backing network.  Internally, the router will use this as its"},{"line_number":126,"context_line":"primary address on the interface.  If the router does not need to be addressed"},{"line_number":127,"context_line":"directly on the network then no public IP address will be allocated for the"},{"line_number":128,"context_line":"router.  Thus, a public IP is saved."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"The router must have a route or routes with next-hop IP addresses on the"},{"line_number":131,"context_line":"backing network in order for it to be useful.  In the simplest case, the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dac4157f_5125fda8","line":128,"updated":"2015-04-21 06:43:33.000000000","message":"how can neutron know if the router does not need to be addressed or not?","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"40f6efd1c0abab7b85d24047389eaabd97f0d9ce","unresolved":false,"context_lines":[{"line_number":133,"context_line":"routing the traffic from the router.  For egress traffic from the router, this"},{"line_number":134,"context_line":"is all that is necessary.  It is important to note an implication of this; the"},{"line_number":135,"context_line":"backing network must be configured on the gateway router which is outside of"},{"line_number":136,"context_line":"Neutron."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"To handle ingress traffic to the router, there is more to do.  The source of"},{"line_number":139,"context_line":"the ingress traffic needs to know how to get the traffic to the router.  This"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dac4157f_d15fcd0c","line":136,"updated":"2015-04-21 06:43:33.000000000","message":"does it imply that backing networks are provider networks?","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":9444,"name":"gustavo panizzo","email":"gfa@zumbi.com.ar","username":"gfa"},"change_message_id":"d43ed11170920779600d017c16a29dd8ddefcdfd","unresolved":false,"context_lines":[{"line_number":169,"context_line":"carrier grade NAT.  Using this space will guarantee no conflict with tenant"},{"line_number":170,"context_line":"networks."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":".. [#] http://tools.ietf.org/html/rfc6598"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":".."},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"9aa53dc9_a3fa5441","line":172,"updated":"2015-04-10 06:01:33.000000000","message":"i spoke too soon","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"e28af59b4d4f996e1f7c12361f14c6ed07733f54","unresolved":false,"context_lines":[{"line_number":169,"context_line":"carrier grade NAT.  Using this space will guarantee no conflict with tenant"},{"line_number":170,"context_line":"networks."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":".. [#] http://tools.ietf.org/html/rfc6598"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":".."},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aaa499b_35ac7bec","line":172,"in_reply_to":"9aa53dc9_a3fa5441","updated":"2015-04-14 22:19:13.000000000","message":":)","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"8fdfd0b589ff44ff0b8f4cff80407ba11e13626d","unresolved":false,"context_lines":[{"line_number":205,"context_line":"Column        Description"},{"line_number":206,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":207,"context_line":"front_network The ID of the network backed by this network"},{"line_number":208,"context_line":"backing       Enumeration:  null, back, or front"},{"line_number":209,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"A unique constraint will be placed on the front_network column."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3acd31a7_932ba830","line":208,"updated":"2015-04-30 15:33:55.000000000","message":"This backing column is non-normalized information, sometimes called a calculated field, and therefore I don\u0027t recommend it being included in the schema itself.\n\nThe value of the column can be determined via a simple query on the network table itself:\n\n record \u003d SELECT id, front_network FROM network WHERE id \u003d :id;\n \n back \u003d False\n front \u003d False\n if record.front_network is not None:\n     backing \u003d True\n else:\n     front \u003d bool(SELECT COUNT(*) FROM network WHERE front_network \u003d :id)\n\nAlternately, you could do the entire thing in a single SQL statement:\n\n SELECT id,\n  CASE WHEN front_network IS NOT NULL THEN \u0027back\u0027\n  ELSE IF(SELECT COUNT(*) FROM network WHERE front_network \u003d :id, \u0027front\u0027, None)\n AS \u0027backing\u0027\n WHERE id \u003d :id;","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"540807faf4954a22d18a2623692b9ac323068540","unresolved":false,"context_lines":[{"line_number":205,"context_line":"Column        Description"},{"line_number":206,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":207,"context_line":"front_network The ID of the network backed by this network"},{"line_number":208,"context_line":"backing       Enumeration:  null, back, or front"},{"line_number":209,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"A unique constraint will be placed on the front_network column."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3acd31a7_3cec35f2","line":208,"in_reply_to":"3acd31a7_932ba830","updated":"2015-05-05 18:39:37.000000000","message":"Thanks for the feedback.  I will use this in the implementation and will ping you if I get stuck.","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"40f6efd1c0abab7b85d24047389eaabd97f0d9ce","unresolved":false,"context_lines":[{"line_number":240,"context_line":"---------------"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"The API will be extended to allow associating a network to a backing network"},{"line_number":243,"context_line":"using a new optional \"router:backing_network\" attribute.  The following error"},{"line_number":244,"context_line":"conditions will be enforced at the API level."},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"#. Setting a network as a backing network when it is already a front network."}],"source_content_type":"text/x-rst","patch_set":1,"id":"dac4157f_567293e6","line":243,"range":{"start_line":243,"start_character":29,"end_line":243,"end_character":44},"updated":"2015-04-21 06:43:33.000000000","message":"why not backing_networks?","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"0a3b48d83d596e5c05062e4036c1b064ba70d871","unresolved":false,"context_lines":[{"line_number":240,"context_line":"---------------"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"The API will be extended to allow associating a network to a backing network"},{"line_number":243,"context_line":"using a new optional \"router:backing_network\" attribute.  The following error"},{"line_number":244,"context_line":"conditions will be enforced at the API level."},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"#. Setting a network as a backing network when it is already a front network."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad8896b_9d9d0f5c","line":243,"in_reply_to":"dac4157f_567293e6","updated":"2015-05-11 18:48:15.000000000","message":"This might need some fleshing out.  We might need to associate a network with different backing networks depending on what L3 agent is in use.","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":9444,"name":"gustavo panizzo","email":"gfa@zumbi.com.ar","username":"gfa"},"change_message_id":"d43ed11170920779600d017c16a29dd8ddefcdfd","unresolved":false,"context_lines":[{"line_number":298,"context_line":".."},{"line_number":299,"context_line":"  TODO(Carl) How will this go?  Can this be done without downtime?  Need to"},{"line_number":300,"context_line":"  think through the upgrade scenario.  I think it might be ideal if Neutron had"},{"line_number":301,"context_line":"  an upgrade feature which could split an existing network in to two:  one"},{"line_number":302,"context_line":"  backing network with the underlay and L2 details and the other a front"},{"line_number":303,"context_line":"  network all in one transaction.  It would have to include moving ports to the"},{"line_number":304,"context_line":"  backing network where applicable (in the same transaction).  The L2 and L3"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9aa53dc9_8353d038","line":301,"updated":"2015-04-10 06:01:33.000000000","message":"as a deployer i strongly prefer that the upgrades do no touch my existing networks. \n\ni would create the new network then migrate the vm (or ports) to the new network. or i might let the VMs on old network to be deleted and do not allow to create new VMs there until the old network is not used and can be recycled.","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":9444,"name":"gustavo panizzo","email":"gfa@zumbi.com.ar","username":"gfa"},"change_message_id":"84bbf1413ea42f07dc566ee3a3f6547f09f96e02","unresolved":false,"context_lines":[{"line_number":298,"context_line":".."},{"line_number":299,"context_line":"  TODO(Carl) How will this go?  Can this be done without downtime?  Need to"},{"line_number":300,"context_line":"  think through the upgrade scenario.  I think it might be ideal if Neutron had"},{"line_number":301,"context_line":"  an upgrade feature which could split an existing network in to two:  one"},{"line_number":302,"context_line":"  backing network with the underlay and L2 details and the other a front"},{"line_number":303,"context_line":"  network all in one transaction.  It would have to include moving ports to the"},{"line_number":304,"context_line":"  backing network where applicable (in the same transaction).  The L2 and L3"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dac4157f_41bd2a67","line":301,"in_reply_to":"7aaa499b_75ce83b5","updated":"2015-04-21 07:39:47.000000000","message":"i didn\u0027t mean vm connecting to backing network, i mean if a network has vm on it i don\u0027t want the upgrade procedure to modify the network.\n\nto upgrade to routing network i would forbid the creation of vm on the old (bridged) network and allow the creation of vm on the new (routing) network.  \nwhen the old network is no longer in use, i would delete it and reuse the ip blocks\n\n\nis an op view, i don\u0027t want anything to modify my prod environment, if a migration is needed i want to drive it myself at our own pace. \n\ni hope i\u0027m clear","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"e28af59b4d4f996e1f7c12361f14c6ed07733f54","unresolved":false,"context_lines":[{"line_number":298,"context_line":".."},{"line_number":299,"context_line":"  TODO(Carl) How will this go?  Can this be done without downtime?  Need to"},{"line_number":300,"context_line":"  think through the upgrade scenario.  I think it might be ideal if Neutron had"},{"line_number":301,"context_line":"  an upgrade feature which could split an existing network in to two:  one"},{"line_number":302,"context_line":"  backing network with the underlay and L2 details and the other a front"},{"line_number":303,"context_line":"  network all in one transaction.  It would have to include moving ports to the"},{"line_number":304,"context_line":"  backing network where applicable (in the same transaction).  The L2 and L3"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aaa499b_75ce83b5","line":301,"in_reply_to":"9aa53dc9_8353d038","updated":"2015-04-14 22:19:13.000000000","message":"It will be routers connecting to backing networks.  I guess it may be possible for VMs to connect to backing networks too.  This might allow, for example, a floating IP to be hosted directly by an instance behind a router without NAT.  I\u0027ll have to give this some more thought.  I imagine it would take some work in the the VM guest image to enable this in the host OS.","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"540807faf4954a22d18a2623692b9ac323068540","unresolved":false,"context_lines":[{"line_number":298,"context_line":".."},{"line_number":299,"context_line":"  TODO(Carl) How will this go?  Can this be done without downtime?  Need to"},{"line_number":300,"context_line":"  think through the upgrade scenario.  I think it might be ideal if Neutron had"},{"line_number":301,"context_line":"  an upgrade feature which could split an existing network in to two:  one"},{"line_number":302,"context_line":"  backing network with the underlay and L2 details and the other a front"},{"line_number":303,"context_line":"  network all in one transaction.  It would have to include moving ports to the"},{"line_number":304,"context_line":"  backing network where applicable (in the same transaction).  The L2 and L3"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3acd31a7_7cc98d58","line":301,"in_reply_to":"dac4157f_41bd2a67","updated":"2015-05-05 18:39:37.000000000","message":"@gustavo:  See L292.  All of this will be driven at your own pace.  I\u0027m not talking about an automatic migration or upgrade here.  I hope I was clear.  I just need to work it out a bit more.  I\u0027m still thinking that only networks with routers having their external gateway connected are candidates for this.  Networks with VMs will probably not even be candidates for this \"migration\" at first.","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"335c8f938eda058e4dc7669a1ae5be4c694cfc99","unresolved":false,"context_lines":[{"line_number":330,"context_line":"support routing an L3-only routed network on top of multiple networks."},{"line_number":331,"context_line":"Creating that building block is an important objective of this blueprint.  This"},{"line_number":332,"context_line":"is why I chose not to go with this alternative."},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"Implementation"},{"line_number":335,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":336,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aaa499b_f05e2111","line":333,"updated":"2015-04-14 22:47:29.000000000","message":"To tackle the issue of routers and fip namespaces consuming public IPs, it has been suggested by a few people to just use the first floating IP as the router\u0027s primary address.  This would mean...\n\n1)  traffic sourced from the router itself -- which could be debug traffic on behalf of the operator -- would be sourced with this address.\n\n2)  At least the first floating IP would have to be added with /NN instead of /32.  This will complicate code a bit and will complicate things when that floating IP needs to be removed and another floating IP needs to be promoted to be the primary.  The linux kernel does have a way to automatically promote one of the secondaries to primary, so this could be overcome.","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"0a3b48d83d596e5c05062e4036c1b064ba70d871","unresolved":false,"context_lines":[{"line_number":330,"context_line":"support routing an L3-only routed network on top of multiple networks."},{"line_number":331,"context_line":"Creating that building block is an important objective of this blueprint.  This"},{"line_number":332,"context_line":"is why I chose not to go with this alternative."},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"Implementation"},{"line_number":335,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":336,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad8896b_3d9f3b61","line":333,"in_reply_to":"7aaa499b_f05e2111","updated":"2015-05-11 18:48:15.000000000","message":"Done","commit_id":"b4a37d1937c5b1bd84fa812323ad066dceb33196"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"45591f4cda04f0e0b218b8a984fb4d385b01ec38","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Routing networks are also key in supporting L3-only routed networks that may"},{"line_number":26,"context_line":"span L2 domains but allow public addresses to float freely between them."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Problem Description"},{"line_number":29,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_21453942","line":27,"updated":"2015-05-29 14:09:13.000000000","message":"Shall we mention how this also will attempt to solve the \"network segment\" issue identified in this RFE bug [1]? Per our discussion, I think it makes sense to try and cover that use case with this spec as well. We may want to adapt the terminology here to take the segment usecase in mind however. Just a thought.\n\n[1] https://bugs.launchpad.net/neutron/+bug/1458890","commit_id":"e54f24f10e6babd4916715f722ef4dc00ceeef16"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"ef218a83e4da9c4479580da8b592f7c532f7f03c","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Routing networks are also key in supporting L3-only routed networks that may"},{"line_number":26,"context_line":"span L2 domains but allow public addresses to float freely between them."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Problem Description"},{"line_number":29,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_cb667bec","line":27,"in_reply_to":"7a016987_21453942","updated":"2015-05-29 17:44:30.000000000","message":"Yes!  This has been on my mind a lot since we talked.  I\u0027m trying to mentally work or a sane way to model the association of agents -- l2 and l3 -- to segments.  Do we model the host?  What will the api look like?\n\nI\u0027ve got a long drive this afternoon and I plan to think through it to pass the time.","commit_id":"e54f24f10e6babd4916715f722ef4dc00ceeef16"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"9e3cc24ade61f78f6a4ff47cacd4b980011fcb33","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Routing networks are also key in supporting L3-only routed networks that may"},{"line_number":26,"context_line":"span L2 domains but allow public addresses to float freely between them."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Problem Description"},{"line_number":29,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_91455444","line":27,"in_reply_to":"7a016987_cb667bec","updated":"2015-05-29 18:32:15.000000000","message":"By \"do we model the host?\"  I mean to ask do we expose the host through the API to allow associating segments with host networks?  The host is already stored in the agents table so, to some extend, it is already in the model at the db level.\n\nIs this host something that we can eventually use to match up segments in Neutron with some sort of Nova thing?  This would be out of the scope of this blueprint to make such an association but I think it is important to understand how these segments can align with a Nova construct to fulfill the network segments rfe [1].\n\n[1] https://bugs.launchpad.net/neutron/+bug/1458890","commit_id":"e54f24f10e6babd4916715f722ef4dc00ceeef16"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"45591f4cda04f0e0b218b8a984fb4d385b01ec38","unresolved":false,"context_lines":[{"line_number":46,"context_line":"external network to span availability zones, campuses, and possibly even"},{"line_number":47,"context_line":"geographies.  However, this presents scalability problems.  It would be great"},{"line_number":48,"context_line":"if we could use L3 routing for this network, keep the L2 segments small but"},{"line_number":49,"context_line":"maintain the flexibility to move IPs around."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Proposed Change"},{"line_number":52,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_81b06d44","line":49,"updated":"2015-05-29 14:09:13.000000000","message":"This is an example of the problem expressed by those wanting segment support as well. Nice writeup and summary of it!","commit_id":"e54f24f10e6babd4916715f722ef4dc00ceeef16"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"45591f4cda04f0e0b218b8a984fb4d385b01ec38","unresolved":false,"context_lines":[{"line_number":66,"context_line":"#. Eliminate unnecessary public IP address consumption by DVR on compute nodes."},{"line_number":67,"context_line":"#. Integrating L3 dynamically routed networks [#]_."},{"line_number":68,"context_line":"#. Eliminate the need for an extra fip namespace in DVR [#]_."},{"line_number":69,"context_line":"#. Eliminate all unnecessary public IP address consumption in IPv4 space [#]_."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":".. [#] https://blueprints.launchpad.net/neutron/+spec/bgp-dynamic-routing"},{"line_number":72,"context_line":".. [#] https://blueprints.launchpad.net/neutron/+spec/eliminate-dvr-fip-ns"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_6194518a","line":69,"updated":"2015-05-29 14:09:13.000000000","message":"Allow for segments to be created as constructs underneath an existing Neutron network.","commit_id":"e54f24f10e6babd4916715f722ef4dc00ceeef16"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"ef218a83e4da9c4479580da8b592f7c532f7f03c","unresolved":false,"context_lines":[{"line_number":66,"context_line":"#. Eliminate unnecessary public IP address consumption by DVR on compute nodes."},{"line_number":67,"context_line":"#. Integrating L3 dynamically routed networks [#]_."},{"line_number":68,"context_line":"#. Eliminate the need for an extra fip namespace in DVR [#]_."},{"line_number":69,"context_line":"#. Eliminate all unnecessary public IP address consumption in IPv4 space [#]_."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":".. [#] https://blueprints.launchpad.net/neutron/+spec/bgp-dynamic-routing"},{"line_number":72,"context_line":".. [#] https://blueprints.launchpad.net/neutron/+spec/eliminate-dvr-fip-ns"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_2ba2affc","line":69,"in_reply_to":"7a016987_6194518a","updated":"2015-05-29 17:44:30.000000000","message":"+1","commit_id":"e54f24f10e6babd4916715f722ef4dc00ceeef16"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"096cec845519f4e33bcc79c3e7df2607ff6be14c","unresolved":false,"context_lines":[{"line_number":124,"context_line":"owned by a tenant under the cloud operator.  It shouldn\u0027t be marked shared nor"},{"line_number":125,"context_line":"external.  It shouldn\u0027t be visible at all to normal tenants.  Only the admin"},{"line_number":126,"context_line":"needs to see it in order to associate it with the front network, which is the"},{"line_number":127,"context_line":"publicly visible network."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"A backing network is a network which uses only link-local or some other form of"},{"line_number":130,"context_line":"private IP address space.  The important aspect of this address space is that"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_f6fc3e73","line":127,"updated":"2015-05-28 12:28:30.000000000","message":"so would a floating ip network (router:external\u003dtrue) be an example of a front network?","commit_id":"e54f24f10e6babd4916715f722ef4dc00ceeef16"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"ef218a83e4da9c4479580da8b592f7c532f7f03c","unresolved":false,"context_lines":[{"line_number":124,"context_line":"owned by a tenant under the cloud operator.  It shouldn\u0027t be marked shared nor"},{"line_number":125,"context_line":"external.  It shouldn\u0027t be visible at all to normal tenants.  Only the admin"},{"line_number":126,"context_line":"needs to see it in order to associate it with the front network, which is the"},{"line_number":127,"context_line":"publicly visible network."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"A backing network is a network which uses only link-local or some other form of"},{"line_number":130,"context_line":"private IP address space.  The important aspect of this address space is that"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_cbad5bea","line":127,"in_reply_to":"7a016987_f6fc3e73","updated":"2015-05-29 17:44:30.000000000","message":"Absolutely!","commit_id":"e54f24f10e6babd4916715f722ef4dc00ceeef16"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"096cec845519f4e33bcc79c3e7df2607ff6be14c","unresolved":false,"context_lines":[{"line_number":173,"context_line":"something.  Beyond that, the administrator must ensure that access control is"},{"line_number":174,"context_line":"in place so that the management and backing networks are isolated from each"},{"line_number":175,"context_line":"other.  They are not the same network!  The backing network is accessible from"},{"line_number":176,"context_line":"the tenant networks and the undercloud network should not be."},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"If a Neutron router is connected directly to both the tenant\u0027s internal"},{"line_number":179,"context_line":"networks and a private non-routable external subnet then there is a potential"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_16311a5a","line":176,"updated":"2015-05-28 12:28:30.000000000","message":"what is the undercloud network? is this the same as the management network?","commit_id":"e54f24f10e6babd4916715f722ef4dc00ceeef16"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"ef218a83e4da9c4479580da8b592f7c532f7f03c","unresolved":false,"context_lines":[{"line_number":173,"context_line":"something.  Beyond that, the administrator must ensure that access control is"},{"line_number":174,"context_line":"in place so that the management and backing networks are isolated from each"},{"line_number":175,"context_line":"other.  They are not the same network!  The backing network is accessible from"},{"line_number":176,"context_line":"the tenant networks and the undercloud network should not be."},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"If a Neutron router is connected directly to both the tenant\u0027s internal"},{"line_number":179,"context_line":"networks and a private non-routable external subnet then there is a potential"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_8b8ac362","line":176,"in_reply_to":"7a016987_16311a5a","updated":"2015-05-29 17:44:30.000000000","message":"I will clarify this.","commit_id":"e54f24f10e6babd4916715f722ef4dc00ceeef16"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"9b396f939d6ce89046a15c00a2416b09fb78ba97","unresolved":false,"context_lines":[{"line_number":173,"context_line":"something.  Beyond that, the administrator must ensure that access control is"},{"line_number":174,"context_line":"in place so that the management and backing networks are isolated from each"},{"line_number":175,"context_line":"other.  They are not the same network!  The backing network is accessible from"},{"line_number":176,"context_line":"the tenant networks and the undercloud network should not be."},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"If a Neutron router is connected directly to both the tenant\u0027s internal"},{"line_number":179,"context_line":"networks and a private non-routable external subnet then there is a potential"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_dd7d1d1d","line":176,"in_reply_to":"7a016987_8b8ac362","updated":"2015-06-01 16:13:54.000000000","message":"Here, I\u0027m referring to any infrastructure network that is under the cloud.","commit_id":"e54f24f10e6babd4916715f722ef4dc00ceeef16"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"096cec845519f4e33bcc79c3e7df2607ff6be14c","unresolved":false,"context_lines":[{"line_number":200,"context_line":"-----------------"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"The database will store an optional attribute on a network to associate"},{"line_number":203,"context_line":"networks.  Since future work will allow an L3 network to be backed by multiple"},{"line_number":204,"context_line":"backing networks, it doesn\u0027t make sense to add the association to the L3"},{"line_number":205,"context_line":"network.  However, a backing network will only ever back one network.  An"},{"line_number":206,"context_line":"attribute called front_network will be added to the network table to refer from a"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_966bca1d","line":203,"updated":"2015-05-28 12:28:30.000000000","message":"what is an \"L3 network\"? is this a synonym for a front network?","commit_id":"e54f24f10e6babd4916715f722ef4dc00ceeef16"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"ef218a83e4da9c4479580da8b592f7c532f7f03c","unresolved":false,"context_lines":[{"line_number":200,"context_line":"-----------------"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"The database will store an optional attribute on a network to associate"},{"line_number":203,"context_line":"networks.  Since future work will allow an L3 network to be backed by multiple"},{"line_number":204,"context_line":"backing networks, it doesn\u0027t make sense to add the association to the L3"},{"line_number":205,"context_line":"network.  However, a backing network will only ever back one network.  An"},{"line_number":206,"context_line":"attribute called front_network will be added to the network table to refer from a"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_8be1a32c","line":203,"in_reply_to":"7a016987_966bca1d","updated":"2015-05-29 17:44:30.000000000","message":"Thanks for pointing that out.  My terminology isn\u0027t quite consistent.","commit_id":"e54f24f10e6babd4916715f722ef4dc00ceeef16"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"d67ac4bf788399eaaefd3ae58b1c78aa87c49d9e","unresolved":false,"context_lines":[{"line_number":154,"context_line":"backing network.  The particular backing network depends on the host binding of"},{"line_number":155,"context_line":"the port and the network segment that the host is mapped to."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"This address will serve as the primary address on the interface.  If a router"},{"line_number":158,"context_line":"does not need to be addressed directly on the network then no public IP address"},{"line_number":159,"context_line":"will be allocated.  Thus, a public IP is saved.  More on this is described in"},{"line_number":160,"context_line":"the no-router-ip blueprint [#]_."}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_d8276eb4","line":157,"updated":"2015-06-17 16:28:18.000000000","message":"clarity: replace \"this address\" with \"The address from the backing network port\"","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"12280d085474c2d2e7861131c9f5c91bd36ca955","unresolved":false,"context_lines":[{"line_number":154,"context_line":"backing network.  The particular backing network depends on the host binding of"},{"line_number":155,"context_line":"the port and the network segment that the host is mapped to."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"This address will serve as the primary address on the interface.  If a router"},{"line_number":158,"context_line":"does not need to be addressed directly on the network then no public IP address"},{"line_number":159,"context_line":"will be allocated.  Thus, a public IP is saved.  More on this is described in"},{"line_number":160,"context_line":"the no-router-ip blueprint [#]_."}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_b2004135","line":157,"in_reply_to":"fa32b979_d8276eb4","updated":"2015-06-18 21:31:04.000000000","message":"Done","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"d67ac4bf788399eaaefd3ae58b1c78aa87c49d9e","unresolved":false,"context_lines":[{"line_number":171,"context_line":"Presumably, the infrastructure will handle the traffic from there."},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"To handle ingress traffic, there is more to do.  The source of the ingress"},{"line_number":174,"context_line":"traffic needs to know how to get the traffic to the router.  This can be"},{"line_number":175,"context_line":"accomplished in a number of ways:  proxy arp for IPv4, proxy neighbor discovery"},{"line_number":176,"context_line":"for ipv6, announcement of the next hop over a routing protocol, or some other"},{"line_number":177,"context_line":"means of programming the next hop in to the gateway router and beyond.  This"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_f82cb29a","line":174,"updated":"2015-06-17 16:28:18.000000000","message":"Clarity: which router?","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"12280d085474c2d2e7861131c9f5c91bd36ca955","unresolved":false,"context_lines":[{"line_number":171,"context_line":"Presumably, the infrastructure will handle the traffic from there."},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"To handle ingress traffic, there is more to do.  The source of the ingress"},{"line_number":174,"context_line":"traffic needs to know how to get the traffic to the router.  This can be"},{"line_number":175,"context_line":"accomplished in a number of ways:  proxy arp for IPv4, proxy neighbor discovery"},{"line_number":176,"context_line":"for ipv6, announcement of the next hop over a routing protocol, or some other"},{"line_number":177,"context_line":"means of programming the next hop in to the gateway router and beyond.  This"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_927addbb","line":174,"in_reply_to":"fa32b979_f82cb29a","updated":"2015-06-18 21:31:04.000000000","message":"Done","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"d67ac4bf788399eaaefd3ae58b1c78aa87c49d9e","unresolved":false,"context_lines":[{"line_number":176,"context_line":"for ipv6, announcement of the next hop over a routing protocol, or some other"},{"line_number":177,"context_line":"means of programming the next hop in to the gateway router and beyond.  This"},{"line_number":178,"context_line":"blueprint will implement proxy arp only but will create an abstraction in the"},{"line_number":179,"context_line":"code to allow for easy future expansion."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Care should be taken to avoid creating a security problem by introducing this"},{"line_number":182,"context_line":"new network.  Remember that even though Neutron hides this network from"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_f8535215","line":179,"updated":"2015-06-17 16:28:18.000000000","message":"proxy arp on the gateway router outside of neutron?","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"12280d085474c2d2e7861131c9f5c91bd36ca955","unresolved":false,"context_lines":[{"line_number":176,"context_line":"for ipv6, announcement of the next hop over a routing protocol, or some other"},{"line_number":177,"context_line":"means of programming the next hop in to the gateway router and beyond.  This"},{"line_number":178,"context_line":"blueprint will implement proxy arp only but will create an abstraction in the"},{"line_number":179,"context_line":"code to allow for easy future expansion."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Care should be taken to avoid creating a security problem by introducing this"},{"line_number":182,"context_line":"new network.  Remember that even though Neutron hides this network from"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_124d6d99","line":179,"in_reply_to":"fa32b979_f8535215","updated":"2015-06-18 21:31:04.000000000","message":"Done","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"d67ac4bf788399eaaefd3ae58b1c78aa87c49d9e","unresolved":false,"context_lines":[{"line_number":202,"context_line":"address space conflict.  A solution to this problem is to make use of the"},{"line_number":203,"context_line":"\"Shared Address Space\" [#]_ allocated by IANA in 2012 for applications like"},{"line_number":204,"context_line":"carrier grade NAT.  Using this space should guarantee no conflict with tenant"},{"line_number":205,"context_line":"networks."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":".. [#] http://tools.ietf.org/html/rfc6598"},{"line_number":208,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_58b11e46","line":205,"updated":"2015-06-17 16:28:18.000000000","message":"Clarity: proposal to use the Shared Address Space for the backing networks?","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"12280d085474c2d2e7861131c9f5c91bd36ca955","unresolved":false,"context_lines":[{"line_number":202,"context_line":"address space conflict.  A solution to this problem is to make use of the"},{"line_number":203,"context_line":"\"Shared Address Space\" [#]_ allocated by IANA in 2012 for applications like"},{"line_number":204,"context_line":"carrier grade NAT.  Using this space should guarantee no conflict with tenant"},{"line_number":205,"context_line":"networks."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":".. [#] http://tools.ietf.org/html/rfc6598"},{"line_number":208,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_f245696e","line":205,"in_reply_to":"fa32b979_58b11e46","updated":"2015-06-18 21:31:04.000000000","message":"Done","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"d67ac4bf788399eaaefd3ae58b1c78aa87c49d9e","unresolved":false,"context_lines":[{"line_number":223,"context_line":""},{"line_number":224,"context_line":"With this model, the selection of which backing network to use is done by"},{"line_number":225,"context_line":"considering the host to which the port will be bound.  If the front network has"},{"line_number":226,"context_line":"a backing network associated to the host, the port will be allocated from it."},{"line_number":227,"context_line":"Otherwise, if there is a defailt backing network (associated with no hosts"},{"line_number":228,"context_line":"explicitly), it will be used."},{"line_number":229,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_98c7a697","line":226,"updated":"2015-06-17 16:28:18.000000000","message":"The UML below shows a 1:N relationship where a host be associated with multiple backing networks - how would the backing network be selected if this is the case?","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"12280d085474c2d2e7861131c9f5c91bd36ca955","unresolved":false,"context_lines":[{"line_number":223,"context_line":""},{"line_number":224,"context_line":"With this model, the selection of which backing network to use is done by"},{"line_number":225,"context_line":"considering the host to which the port will be bound.  If the front network has"},{"line_number":226,"context_line":"a backing network associated to the host, the port will be allocated from it."},{"line_number":227,"context_line":"Otherwise, if there is a defailt backing network (associated with no hosts"},{"line_number":228,"context_line":"explicitly), it will be used."},{"line_number":229,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_746b86b7","line":226,"in_reply_to":"fa32b979_98c7a697","updated":"2015-06-18 21:31:04.000000000","message":"That should be M:N.  So, that doesn\u0027t really answer your question.  It will be clear which backing network to use because we\u0027ll always have a given front_network in mind.\n\nThe N the other way is because a backing network works with more than just one host.","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"d67ac4bf788399eaaefd3ae58b1c78aa87c49d9e","unresolved":false,"context_lines":[{"line_number":224,"context_line":"With this model, the selection of which backing network to use is done by"},{"line_number":225,"context_line":"considering the host to which the port will be bound.  If the front network has"},{"line_number":226,"context_line":"a backing network associated to the host, the port will be allocated from it."},{"line_number":227,"context_line":"Otherwise, if there is a defailt backing network (associated with no hosts"},{"line_number":228,"context_line":"explicitly), it will be used."},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"Two tables will be added to support.  The first stores the association of a"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_d883ee54","line":227,"updated":"2015-06-17 16:28:18.000000000","message":"typo: default","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"12280d085474c2d2e7861131c9f5c91bd36ca955","unresolved":false,"context_lines":[{"line_number":224,"context_line":"With this model, the selection of which backing network to use is done by"},{"line_number":225,"context_line":"considering the host to which the port will be bound.  If the front network has"},{"line_number":226,"context_line":"a backing network associated to the host, the port will be allocated from it."},{"line_number":227,"context_line":"Otherwise, if there is a defailt backing network (associated with no hosts"},{"line_number":228,"context_line":"explicitly), it will be used."},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"Two tables will be added to support.  The first stores the association of a"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_f4d2365b","line":227,"in_reply_to":"fa32b979_d883ee54","updated":"2015-06-18 21:31:04.000000000","message":"Done","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"d67ac4bf788399eaaefd3ae58b1c78aa87c49d9e","unresolved":false,"context_lines":[{"line_number":241,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"A unique constraint will be placed on the (network, host) tuple but duplicate"},{"line_number":244,"context_line":"vales can be found in both columns independenty."},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"The second table associates a front network with one or more backing networks."},{"line_number":247,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_78f8a2c3","line":244,"updated":"2015-06-17 16:28:18.000000000","message":"1. does the network column refer to backing network or front network or both?\n\n2. typo: values\n\n3. If duplicate values can be found in both columns independently, shouldn\u0027t the UML below show M:N associations from the host, rather than 1:N?","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"12280d085474c2d2e7861131c9f5c91bd36ca955","unresolved":false,"context_lines":[{"line_number":241,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"A unique constraint will be placed on the (network, host) tuple but duplicate"},{"line_number":244,"context_line":"vales can be found in both columns independenty."},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"The second table associates a front network with one or more backing networks."},{"line_number":247,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_b40d8ee9","line":244,"in_reply_to":"fa32b979_78f8a2c3","updated":"2015-06-18 21:31:04.000000000","message":"Good catch.  My diagram was incorrect.","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"d67ac4bf788399eaaefd3ae58b1c78aa87c49d9e","unresolved":false,"context_lines":[{"line_number":267,"context_line":"virtue of the unique constraint on the backing_network column.  We could try to"},{"line_number":268,"context_line":"maintain this invariant in code by performing a select after any insert but the"},{"line_number":269,"context_line":"concurrent aspects of this design are more difficult to work out.  This"},{"line_number":270,"context_line":"proposed solution is an easy way to make the invariant rock solid."},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"Finally, there is one more invariant which could be difficult to enforce.  It"},{"line_number":273,"context_line":"is that there should be at most one choice of backing networks for any given"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_d8052e7a","line":270,"updated":"2015-06-17 16:28:18.000000000","message":"There appears to be a hidden assumption that the extra row for the front network is to be added when the front network is created to avoid potential concurrency issues - should this be called out?","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"12280d085474c2d2e7861131c9f5c91bd36ca955","unresolved":false,"context_lines":[{"line_number":267,"context_line":"virtue of the unique constraint on the backing_network column.  We could try to"},{"line_number":268,"context_line":"maintain this invariant in code by performing a select after any insert but the"},{"line_number":269,"context_line":"concurrent aspects of this design are more difficult to work out.  This"},{"line_number":270,"context_line":"proposed solution is an easy way to make the invariant rock solid."},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"Finally, there is one more invariant which could be difficult to enforce.  It"},{"line_number":273,"context_line":"is that there should be at most one choice of backing networks for any given"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_d4b132e1","line":270,"in_reply_to":"fa32b979_d8052e7a","updated":"2015-06-18 21:31:04.000000000","message":"I thought that\u0027s what I did.  ;)\n\nJoking aside:  The \"insert or ignore\" thing wasn\u0027t quite correct.  It shouldn\u0027t be used because it would silently fail to insert if the network was already in the backing_network column regardless of what\u0027s in the front_network column.  I\u0027ll revise.","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"d67ac4bf788399eaaefd3ae58b1c78aa87c49d9e","unresolved":false,"context_lines":[{"line_number":272,"context_line":"Finally, there is one more invariant which could be difficult to enforce.  It"},{"line_number":273,"context_line":"is that there should be at most one choice of backing networks for any given"},{"line_number":274,"context_line":"host and at most one default backing network.  The association of front network"},{"line_number":275,"context_line":"to host is not stored explicitly hence the difficult::"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"    +-----------------+"},{"line_number":278,"context_line":"    |                 |"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_18e396a5","line":275,"updated":"2015-06-17 16:28:18.000000000","message":"My intereptation of this paragraph doesn\u0027t get me to the UML below.  To get to the picture below, aren\u0027t you saying that:\n\na. there must be at most one default backing network for each front network\nb. for any given host to access any given front network, there should be at most one set of backing networks that can be chosen from","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"12280d085474c2d2e7861131c9f5c91bd36ca955","unresolved":false,"context_lines":[{"line_number":272,"context_line":"Finally, there is one more invariant which could be difficult to enforce.  It"},{"line_number":273,"context_line":"is that there should be at most one choice of backing networks for any given"},{"line_number":274,"context_line":"host and at most one default backing network.  The association of front network"},{"line_number":275,"context_line":"to host is not stored explicitly hence the difficult::"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"    +-----------------+"},{"line_number":278,"context_line":"    |                 |"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_5429a299","line":275,"in_reply_to":"fa32b979_18e396a5","updated":"2015-06-18 21:31:04.000000000","message":"This is correct but slightly different than yours:  \"for any given host to access any given front network, there should be at most one backing network.\"\n\nThe UML here is incorrect.  It isn\u0027t quite showing what I want it to.","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"d67ac4bf788399eaaefd3ae58b1c78aa87c49d9e","unresolved":false,"context_lines":[{"line_number":310,"context_line":"unique constraint from that table (i.e. a backing network can only back a"},{"line_number":311,"context_line":"single front network."},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"Thoughts?"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"REST API Impact"},{"line_number":316,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_eb2cda9a","line":313,"updated":"2015-06-17 16:28:18.000000000","message":"Would it be easier to add a identifier column to the backing_networks table and have the host table use that identifier rather than the network identifier","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"12280d085474c2d2e7861131c9f5c91bd36ca955","unresolved":false,"context_lines":[{"line_number":310,"context_line":"unique constraint from that table (i.e. a backing network can only back a"},{"line_number":311,"context_line":"single front network."},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"Thoughts?"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"REST API Impact"},{"line_number":316,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_7a6b6fb7","line":313,"in_reply_to":"fa32b979_eb2cda9a","updated":"2015-06-18 21:31:04.000000000","message":"That doesn\u0027t solve the problem.  The relationship of the front network to the host is still indirect and we would still be vulnerable to the same inconsistency.","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"d67ac4bf788399eaaefd3ae58b1c78aa87c49d9e","unresolved":false,"context_lines":[{"line_number":317,"context_line":""},{"line_number":318,"context_line":"The API will be extended to allow associating a network to a backing network"},{"line_number":319,"context_line":"using a new optional \"router:backing_network\" attribute.  The following error"},{"line_number":320,"context_line":"conditions will be enforced at the API level."},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"#. Setting a network as a backing network when it is already a front network."},{"line_number":323,"context_line":"#. Setting a network as a front network when it is already a backing network."}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_8b798e84","line":320,"updated":"2015-06-17 16:28:18.000000000","message":"What is the \"router:backing_network\" attribute type?\n\nAlso, see below for scale considerations when doing notifications","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"12280d085474c2d2e7861131c9f5c91bd36ca955","unresolved":false,"context_lines":[{"line_number":317,"context_line":""},{"line_number":318,"context_line":"The API will be extended to allow associating a network to a backing network"},{"line_number":319,"context_line":"using a new optional \"router:backing_network\" attribute.  The following error"},{"line_number":320,"context_line":"conditions will be enforced at the API level."},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"#. Setting a network as a backing network when it is already a front network."},{"line_number":323,"context_line":"#. Setting a network as a front network when it is already a backing network."}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_b7a350ff","line":320,"in_reply_to":"fa32b979_8b798e84","updated":"2015-06-18 21:31:04.000000000","message":"Honestly, I don\u0027t remember why the \"router:\" is there.","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"d67ac4bf788399eaaefd3ae58b1c78aa87c49d9e","unresolved":false,"context_lines":[{"line_number":345,"context_line":"TODO(Carl)"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"If a network changes, L3 agents will be notified of the change and will need"},{"line_number":348,"context_line":"update all routers accordingly."},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"Other End User Impact"},{"line_number":351,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_cb38f6a2","line":348,"updated":"2015-06-17 16:28:18.000000000","message":"Should this even be the case?  Won\u0027t this create issues under scale?","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"12280d085474c2d2e7861131c9f5c91bd36ca955","unresolved":false,"context_lines":[{"line_number":345,"context_line":"TODO(Carl)"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"If a network changes, L3 agents will be notified of the change and will need"},{"line_number":348,"context_line":"update all routers accordingly."},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"Other End User Impact"},{"line_number":351,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_774e283c","line":348,"in_reply_to":"fa32b979_cb38f6a2","updated":"2015-06-18 21:31:04.000000000","message":"This isn\u0027t well thought out yet.  Hence the TODO.  Maybe this should be done.  I tried briefly to think through the upgrade scenario where an existing deployment wanted to convert to using a backing network.  But, I did not get to any conclusions.  Let me give this some thought.","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"d67ac4bf788399eaaefd3ae58b1c78aa87c49d9e","unresolved":false,"context_lines":[{"line_number":377,"context_line":"come when the deployer wishes to utilize this feature to save addresses"},{"line_number":378,"context_line":"consumed by DVR.  At that point, the deployer will need to create the backing"},{"line_number":379,"context_line":"networks, configure them on the upstream gateway routers, and then update"},{"line_number":380,"context_line":"existing networks to be front networks."},{"line_number":381,"context_line":""},{"line_number":382,"context_line":".."},{"line_number":383,"context_line":"  TODO(Carl) How will this go?  Can this be done without downtime?  Need to"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_4b22a653","line":380,"updated":"2015-06-17 16:28:18.000000000","message":"Can we define the absence of the optional attribute as defining a network to be a front network to avoid the last update step?","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"12280d085474c2d2e7861131c9f5c91bd36ca955","unresolved":false,"context_lines":[{"line_number":377,"context_line":"come when the deployer wishes to utilize this feature to save addresses"},{"line_number":378,"context_line":"consumed by DVR.  At that point, the deployer will need to create the backing"},{"line_number":379,"context_line":"networks, configure them on the upstream gateway routers, and then update"},{"line_number":380,"context_line":"existing networks to be front networks."},{"line_number":381,"context_line":""},{"line_number":382,"context_line":".."},{"line_number":383,"context_line":"  TODO(Carl) How will this go?  Can this be done without downtime?  Need to"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_d7b5b4ec","line":380,"in_reply_to":"fa32b979_4b22a653","updated":"2015-06-18 21:31:04.000000000","message":"Needs more thought.","commit_id":"9fc4b500855a932ca45778510269386f07afbe48"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"7921012a20591fc69e373c2658aa5609d3d9b1bd","unresolved":false,"context_lines":[{"line_number":281,"context_line":"       +  -  -  -  -  -  -  -  -  - | ...     +-------------------+ ...    |"},{"line_number":282,"context_line":"       | (front_network, host)      |         |                   |        |"},{"line_number":283,"context_line":"                                    +--+------+                   +--------+"},{"line_number":284,"context_line":"       |                               |                                    "},{"line_number":285,"context_line":"                                       | (1)                                "},{"line_number":286,"context_line":"       |                               |   (front_network)                  "},{"line_number":287,"context_line":"                                       |                                    "}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa32b979_da7ddb6d","line":284,"updated":"2015-06-18 21:32:17.000000000","message":"Doh!  My gvim failed me and didn\u0027t show me these.","commit_id":"e631030bd53b64ddff344d10c60228bdbf9a56f7"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"2f7f157f5ef1841682aef723b83116521e4471b6","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"The change that this blueprint will introduce is the capability to associate a"},{"line_number":71,"context_line":"network with a Backing `Network Segment`.  This network is essentially a"},{"line_number":72,"context_line":"carrier network that is used on-link but it works behind the scenes.  Router"},{"line_number":73,"context_line":"interfaces will have ports on it which can be used as next-hop addresses or"},{"line_number":74,"context_line":"just to satisfy the requirement to have a primary address on the router\u0027s"},{"line_number":75,"context_line":"interface."}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_fa6e7895","line":72,"updated":"2015-06-19 17:23:35.000000000","message":"Sorry, I don\u0027t understand the above sentence. Can you dummify it for me? :)\n\nNot sure what you mean by \"on-link\" here and L126/L130.","commit_id":"4268cccc5dca19e73bdf392d2be809ef59c566c6"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"ae46207afe8084c74fad7a1170409c1dff265b3e","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"The change that this blueprint will introduce is the capability to associate a"},{"line_number":71,"context_line":"network with a Backing `Network Segment`.  This network is essentially a"},{"line_number":72,"context_line":"carrier network that is used on-link but it works behind the scenes.  Router"},{"line_number":73,"context_line":"interfaces will have ports on it which can be used as next-hop addresses or"},{"line_number":74,"context_line":"just to satisfy the requirement to have a primary address on the router\u0027s"},{"line_number":75,"context_line":"interface."}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_f762d43c","line":72,"in_reply_to":"fa32b979_fa6e7895","updated":"2015-06-22 16:39:48.000000000","message":"Done","commit_id":"4268cccc5dca19e73bdf392d2be809ef59c566c6"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"32097760e73039d168bb05d43681d5a4308ecf11","unresolved":false,"context_lines":[{"line_number":171,"context_line":"Presumably, the infrastructure will handle the traffic from there."},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"To handle ingress traffic, there is more to do.  The north-bound infrastructure"},{"line_number":174,"context_line":"router needs to know how to get the traffic to the tenant router.  This can be"},{"line_number":175,"context_line":"accomplished in a number of ways:  proxy arp for IPv4, proxy neighbor discovery"},{"line_number":176,"context_line":"for ipv6, announcement of the next hop over a routing protocol, or some other"},{"line_number":177,"context_line":"means of programming the next hop in to the gateway router and beyond.  This"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_fb4d01c5","line":174,"updated":"2015-06-21 23:26:26.000000000","message":"First, is the north-bound infrastructure different from the gateway router mentioned before?  If so, the we have three routers being talked about (NB infra, gateway, and tenant) so some text diagram and terminology section up front becomes a necessity to avoid later confusion","commit_id":"4268cccc5dca19e73bdf392d2be809ef59c566c6"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"ae46207afe8084c74fad7a1170409c1dff265b3e","unresolved":false,"context_lines":[{"line_number":171,"context_line":"Presumably, the infrastructure will handle the traffic from there."},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"To handle ingress traffic, there is more to do.  The north-bound infrastructure"},{"line_number":174,"context_line":"router needs to know how to get the traffic to the tenant router.  This can be"},{"line_number":175,"context_line":"accomplished in a number of ways:  proxy arp for IPv4, proxy neighbor discovery"},{"line_number":176,"context_line":"for ipv6, announcement of the next hop over a routing protocol, or some other"},{"line_number":177,"context_line":"means of programming the next hop in to the gateway router and beyond.  This"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_d79470e9","line":174,"in_reply_to":"fa32b979_fb4d01c5","updated":"2015-06-22 16:39:48.000000000","message":"Done","commit_id":"4268cccc5dca19e73bdf392d2be809ef59c566c6"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"32097760e73039d168bb05d43681d5a4308ecf11","unresolved":false,"context_lines":[{"line_number":295,"context_line":"                                       |"},{"line_number":296,"context_line":"       |                               |   (backing_network)"},{"line_number":297,"context_line":"         (M)                           | (*)"},{"line_number":298,"context_line":"       |                               |                           (static)"},{"line_number":299,"context_line":"    +--+---+ [network_host_binding] +--+------+                   +--------+"},{"line_number":300,"context_line":"    | Host |                        | Network |                   | Subnet |"},{"line_number":301,"context_line":"    +------+ (M)                (N) +---------+ (1)        (1..N) +--------+"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_1b4b05b2","line":298,"updated":"2015-06-21 23:26:26.000000000","message":"Nit: would \"static\" or \"rfc 6598\" be clearer?","commit_id":"4268cccc5dca19e73bdf392d2be809ef59c566c6"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"ae46207afe8084c74fad7a1170409c1dff265b3e","unresolved":false,"context_lines":[{"line_number":295,"context_line":"                                       |"},{"line_number":296,"context_line":"       |                               |   (backing_network)"},{"line_number":297,"context_line":"         (M)                           | (*)"},{"line_number":298,"context_line":"       |                               |                           (static)"},{"line_number":299,"context_line":"    +--+---+ [network_host_binding] +--+------+                   +--------+"},{"line_number":300,"context_line":"    | Host |                        | Network |                   | Subnet |"},{"line_number":301,"context_line":"    +------+ (M)                (N) +---------+ (1)        (1..N) +--------+"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_820ea430","line":298,"in_reply_to":"fa32b979_1b4b05b2","updated":"2015-06-22 16:39:48.000000000","message":"The more important aspect is that it is statically routed but I guess adding rfc6598 here would help clarify a bit.","commit_id":"4268cccc5dca19e73bdf392d2be809ef59c566c6"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"9ab44ce37798111ebe863bbce791ab623dd38231","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":":Author: Carl Baldwin \u003ccarl.baldwin@hp.com\u003e"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Routing networks allow a router to connect networks without consuming IP"},{"line_number":16,"context_line":"addresses on them.  They do this by using a Backing `L3 Network Segment`_.  The"},{"line_number":17,"context_line":"router gets a port on the backing network and optionally an address on the"},{"line_number":18,"context_line":"public network.  With or without an address of its own, the router can receive"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_759719ec","line":15,"updated":"2015-06-25 04:26:00.000000000","message":"when we mention \u0027networks\u0027 should we be more explicit about what networks we\u0027re talking about? You\u0027re not talking about private tenant networks, but not being explicit about this can create some confusion during the reading...and there\u0027s a lot to read here.","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"ccd362ff2fa9b8fbfb849d48b2ac19a05b23815f","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":":Author: Carl Baldwin \u003ccarl.baldwin@hp.com\u003e"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Routing networks allow a router to connect networks without consuming IP"},{"line_number":16,"context_line":"addresses on them.  They do this by using a Backing `L3 Network Segment`_.  The"},{"line_number":17,"context_line":"router gets a port on the backing network and optionally an address on the"},{"line_number":18,"context_line":"public network.  With or without an address of its own, the router can receive"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_68d957f4","line":15,"in_reply_to":"fa32b979_759719ec","updated":"2015-06-25 19:26:20.000000000","message":"+1","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":9060,"name":"Mike Dorman","email":"dorm@dorm.org","username":"gd-mdorman"},"change_message_id":"787217d29999521f05df58d3d9efc6cd7ba03b34","unresolved":false,"context_lines":[{"line_number":13,"context_line":":Author: Carl Baldwin \u003ccarl.baldwin@hp.com\u003e"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Routing networks allow a router to connect networks without consuming IP"},{"line_number":16,"context_line":"addresses on them.  They do this by using a Backing `L3 Network Segment`_.  The"},{"line_number":17,"context_line":"router gets a port on the backing network and optionally an address on the"},{"line_number":18,"context_line":"public network.  With or without an address of its own, the router can receive"},{"line_number":19,"context_line":"traffic on behalf of hosts or networks behind it."}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_d1b7f9d5","line":16,"updated":"2015-06-25 20:12:54.000000000","message":"Part of what tripped me up when I first read this is the \"L3 Network Segment\" terminology.  To me it makes more sense to say \"L2 Network Segment\", since the segments we are talking about are really L2.  When referred to as L3, in my brain I am thinking something that\u0027s decoupled from a L2 domain.","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"0fa849cd2e5f63beca38963d33783cd0d2d1b177","unresolved":false,"context_lines":[{"line_number":13,"context_line":":Author: Carl Baldwin \u003ccarl.baldwin@hp.com\u003e"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Routing networks allow a router to connect networks without consuming IP"},{"line_number":16,"context_line":"addresses on them.  They do this by using a Backing `L3 Network Segment`_.  The"},{"line_number":17,"context_line":"router gets a port on the backing network and optionally an address on the"},{"line_number":18,"context_line":"public network.  With or without an address of its own, the router can receive"},{"line_number":19,"context_line":"traffic on behalf of hosts or networks behind it."}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_1b24705e","line":16,"in_reply_to":"fa32b979_d1b7f9d5","updated":"2015-06-26 14:57:46.000000000","message":"Right.  So what does \u0027L3 network segment\u0027 mean, here?","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"0fa849cd2e5f63beca38963d33783cd0d2d1b177","unresolved":false,"context_lines":[{"line_number":16,"context_line":"addresses on them.  They do this by using a Backing `L3 Network Segment`_.  The"},{"line_number":17,"context_line":"router gets a port on the backing network and optionally an address on the"},{"line_number":18,"context_line":"public network.  With or without an address of its own, the router can receive"},{"line_number":19,"context_line":"traffic on behalf of hosts or networks behind it."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The capability to support routing networks is key to reducing wasted address"},{"line_number":22,"context_line":"consumption.  This is especially true in a distributed router where the virtual"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_1b56b0ce","line":19,"updated":"2015-06-26 14:57:46.000000000","message":"Hi Carl. I\u0027m sorry for reviewing this rather late in the cycle, but I\u0027m wondering if this has anything to do with the kind of routed networks that I\u0027m interested in integrating into Neutron - i.e. where the network that VMs connect to operates via routing instead of via bridging.  I suspect not - but maybe I am misunderstanding.\n\nWhen you say \"allow a router to connect networks without consuming IP addresses\", do you mean:\n\n- an enhancement just to the Neutron reference virtual router implementation?\n\n- OR something that might make an observable connectivity difference to a VM (which I think would therefore be something that should be described on the API)\n\n- OR something that might be an aspect of virtual networking topology more generally than only for the Neutron reference implementation, but that doesn\u0027t affect connectivity from any VM\u0027s point of view?\n\n(Or another option that I\u0027ve missed!)","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"7859b75bcd8030649e935323f905987a18664284","unresolved":false,"context_lines":[{"line_number":23,"context_line":"router may actually have many connections to the physical network."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Routing networks are also key in supporting L3-only routed networks that may"},{"line_number":26,"context_line":"span L2 domains but allow public addresses to float freely between them."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Routing networks will be based on L3 network segments, which are proposed in"},{"line_number":29,"context_line":"this spec.  These segments have been requested by operators [#]_.  The use case"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_3bea94ad","line":26,"updated":"2015-06-26 16:24:08.000000000","message":"That sounds like what I\u0027m interested in!","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"7859b75bcd8030649e935323f905987a18664284","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Routing networks will be based on L3 network segments, which are proposed in"},{"line_number":29,"context_line":"this spec.  These segments have been requested by operators [#]_.  The use case"},{"line_number":30,"context_line":"in this specification limits the their usage to router external gateways and"},{"line_number":31,"context_line":"will require dynamic routing to maintain IP mobility in the case where more"},{"line_number":32,"context_line":"than one backing segment is used for a single front network."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_1bfc7071","line":30,"updated":"2015-06-26 16:24:08.000000000","message":"I guess we\u0027re still just in the summary at this point, but I\u0027m concerned about what \"limits their usage to router external gateways\" means.  According to all the use cases that I understand from 1458890, operators want to be able to specify that new VMs should be attached to an L3 network segment aka network group.  Hence from the VM\u0027s point of view, it is attached directly to that L3 network, which sounds quite different from your suggestion here.","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"7859b75bcd8030649e935323f905987a18664284","unresolved":false,"context_lines":[{"line_number":29,"context_line":"this spec.  These segments have been requested by operators [#]_.  The use case"},{"line_number":30,"context_line":"in this specification limits the their usage to router external gateways and"},{"line_number":31,"context_line":"will require dynamic routing to maintain IP mobility in the case where more"},{"line_number":32,"context_line":"than one backing segment is used for a single front network."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":".. [#] https://bugs.launchpad.net/neutron/+bug/1458890"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_7e024a0b","line":32,"updated":"2015-06-26 16:24:08.000000000","message":"At this point in the spec, you haven\u0027t defined what backing and front networks are, so I don\u0027t think you can usefully use those terms here.","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"9ab44ce37798111ebe863bbce791ab623dd38231","unresolved":false,"context_lines":[{"line_number":66,"context_line":"Overview"},{"line_number":67,"context_line":"--------"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"The change that this blueprint will introduce is the capability to associate a"},{"line_number":70,"context_line":"network with a Backing `L3 Network Segment`.  This network will work behind the"},{"line_number":71,"context_line":"scenes.  Tenants will be unaware of its existence unless they look at the IP"},{"line_number":72,"context_line":"address on the router gateway port.  Router gateway interfaces will have ports"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_95c17de6","line":69,"updated":"2015-06-25 04:26:00.000000000","message":"an external network, you mean?","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":9060,"name":"Mike Dorman","email":"dorm@dorm.org","username":"gd-mdorman"},"change_message_id":"787217d29999521f05df58d3d9efc6cd7ba03b34","unresolved":false,"context_lines":[{"line_number":66,"context_line":"Overview"},{"line_number":67,"context_line":"--------"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"The change that this blueprint will introduce is the capability to associate a"},{"line_number":70,"context_line":"network with a Backing `L3 Network Segment`.  This network will work behind the"},{"line_number":71,"context_line":"scenes.  Tenants will be unaware of its existence unless they look at the IP"},{"line_number":72,"context_line":"address on the router gateway port.  Router gateway interfaces will have ports"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_111ec1ba","line":69,"in_reply_to":"fa32b979_95c17de6","updated":"2015-06-25 20:12:54.000000000","message":"I like the \u0027front network\u0027 and \u0027backing network\u0027 terminology we were using yesterday.","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"7859b75bcd8030649e935323f905987a18664284","unresolved":false,"context_lines":[{"line_number":112,"context_line":"   floating IPs by looking for the /32 prefix."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"#. It generates a corresponding on-link route for the subnet."},{"line_number":115,"context_line":"#. It is used as the source address for traffic originating from the host."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"An on-link route can be added without an address.  This essentially tells the"},{"line_number":118,"context_line":"kernel that this particular route is directly on the link and there is no"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_fe1bba1a","line":115,"updated":"2015-06-26 16:24:08.000000000","message":"Sorry, what is \"It\" here?  (i.e what is the source address?)","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"7859b75bcd8030649e935323f905987a18664284","unresolved":false,"context_lines":[{"line_number":132,"context_line":"are today."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"This technique brings the flexibility to operate a router without a dedicated"},{"line_number":135,"context_line":"public primary address if it is only used for E-W traffic and floating IPs."},{"line_number":136,"context_line":"This is important with DVR and the same technique can be used to operate its"},{"line_number":137,"context_line":"fip namespace without a public primary address too."},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_595be0f6","line":135,"updated":"2015-06-26 16:24:08.000000000","message":"Also note that you only need an address for N-S traffic because of NAT and hosting the floating IPs on the vRouter.\n\nFor outbound connectivity, an alternative approach is to route without NAT out to a real border gateway at the edge of the data center network, and do the NAT on that border gateway.\n\nFor inbound connectivity, an alternative (to floating IPs) is to assign a reachable IP address directly to a VM, instead of a DC-private address.\n\nWith those approaches, I believe vRouters don\u0027t need addresses for N-S traffic either.","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"7859b75bcd8030649e935323f905987a18664284","unresolved":false,"context_lines":[{"line_number":134,"context_line":"This technique brings the flexibility to operate a router without a dedicated"},{"line_number":135,"context_line":"public primary address if it is only used for E-W traffic and floating IPs."},{"line_number":136,"context_line":"This is important with DVR and the same technique can be used to operate its"},{"line_number":137,"context_line":"fip namespace without a public primary address too."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"L3 Network Segment"},{"line_number":140,"context_line":"__________________"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_79fd8407","line":137,"updated":"2015-06-26 16:24:08.000000000","message":"(Note: In its use of unaddressed but routed interfaces, this is similar to what we are doing in Calico to provide routed connectivity between VMs.  There is no IP address on the host end of the TAP from each VM, but also these TAP interfaces are not bridged into anything.  There is a routing entry on the host like\n\n  ip route add 10.1.1.25/32 dev tap123-ABCD\n\nfor each VM TAP interface.  Data from a VM falls out of the TAP interface and gets routed by Linux.  Data from elsewhere, for a VM, arrives at the compute host and then gets routed down the right TAP interface using one of those routing entries.)","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"9ab44ce37798111ebe863bbce791ab623dd38231","unresolved":false,"context_lines":[{"line_number":139,"context_line":"L3 Network Segment"},{"line_number":140,"context_line":"__________________"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"A backing network segment is a behind-the-scenes network.  It will usually be"},{"line_number":143,"context_line":"owned by an admin tenant.  It shouldn\u0027t be marked shared nor external.  It"},{"line_number":144,"context_line":"shouldn\u0027t be visible at all to normal tenants.  Only the admin needs to see it"},{"line_number":145,"context_line":"in order to associate it with the front network, which is the publicly visible"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_b5a84121","line":142,"updated":"2015-06-25 04:26:00.000000000","message":"under what other circumstances will it not?","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"df649e5394f87dd2186e4512bccf2bf3508c0664","unresolved":false,"context_lines":[{"line_number":142,"context_line":"A backing network segment is a behind-the-scenes network.  It will usually be"},{"line_number":143,"context_line":"owned by an admin tenant.  It shouldn\u0027t be marked shared nor external.  It"},{"line_number":144,"context_line":"shouldn\u0027t be visible at all to normal tenants.  Only the admin needs to see it"},{"line_number":145,"context_line":"in order to associate it with the front network, which is the publicly visible"},{"line_number":146,"context_line":"network."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"An L3 network segment is isolated at the L2 level from other networks but"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_72c32f58","line":145,"updated":"2015-06-22 18:45:17.000000000","message":"I think that I\u0027m confused with what constitutes a front network. Is it a tenant network, or a network with router:external\u003dTrue.? The updated text at line 72 seems to be indicating the latter case. But some texts also refers to router ports (in the context of neutron router). So please clarify.","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"9ab44ce37798111ebe863bbce791ab623dd38231","unresolved":false,"context_lines":[{"line_number":142,"context_line":"A backing network segment is a behind-the-scenes network.  It will usually be"},{"line_number":143,"context_line":"owned by an admin tenant.  It shouldn\u0027t be marked shared nor external.  It"},{"line_number":144,"context_line":"shouldn\u0027t be visible at all to normal tenants.  Only the admin needs to see it"},{"line_number":145,"context_line":"in order to associate it with the front network, which is the publicly visible"},{"line_number":146,"context_line":"network."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"An L3 network segment is isolated at the L2 level from other networks but"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_95689df6","line":145,"updated":"2015-06-25 04:26:00.000000000","message":"this is the second time \u0027front\u0027 network is mentioned. But we never really defined what it is in Neutron lingo. Shall we, for sake of clarity?","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"0aa97afa59a62ef5d0a48cfde041d80c06088309","unresolved":false,"context_lines":[{"line_number":142,"context_line":"A backing network segment is a behind-the-scenes network.  It will usually be"},{"line_number":143,"context_line":"owned by an admin tenant.  It shouldn\u0027t be marked shared nor external.  It"},{"line_number":144,"context_line":"shouldn\u0027t be visible at all to normal tenants.  Only the admin needs to see it"},{"line_number":145,"context_line":"in order to associate it with the front network, which is the publicly visible"},{"line_number":146,"context_line":"network."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"An L3 network segment is isolated at the L2 level from other networks but"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_c3dcab48","line":145,"in_reply_to":"fa32b979_72c32f58","updated":"2015-06-22 19:10:46.000000000","message":"In the context of this blueprint, it must be external because only router external gateways can connect to it.  However, beyond this blueprint, any provider network can be a front network with multiple backing network segments.","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"7859b75bcd8030649e935323f905987a18664284","unresolved":false,"context_lines":[{"line_number":143,"context_line":"owned by an admin tenant.  It shouldn\u0027t be marked shared nor external.  It"},{"line_number":144,"context_line":"shouldn\u0027t be visible at all to normal tenants.  Only the admin needs to see it"},{"line_number":145,"context_line":"in order to associate it with the front network, which is the publicly visible"},{"line_number":146,"context_line":"network."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"An L3 network segment is isolated at the L2 level from other networks but"},{"line_number":149,"context_line":"routed at L3.  They differ from the segments in Neutron\u0027s multiple provider"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_39fcdc71","line":146,"updated":"2015-06-26 16:24:08.000000000","message":"Please can you say what a backing network _is_?!  The preceding sentences are all telling us what it _isn\u0027t_, or only about some (minor, I think) aspects of it.  What does it actually mean?","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"7859b75bcd8030649e935323f905987a18664284","unresolved":false,"context_lines":[{"line_number":146,"context_line":"network."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"An L3 network segment is isolated at the L2 level from other networks but"},{"line_number":149,"context_line":"routed at L3.  They differ from the segments in Neutron\u0027s multiple provider"},{"line_number":150,"context_line":"extension (MPE).  MPE segments are physical or encapsulation layer segments and"},{"line_number":151,"context_line":"L2 flows across segments boundaries."},{"line_number":152,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_595d2078","line":149,"updated":"2015-06-26 16:24:08.000000000","message":"\"isolated at the L2 level from other networks but\trouted at L3\".  That is equally true for a traditional Neutron network, isn\u0027t it?  So how is an L3 network segment different?","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"9ab44ce37798111ebe863bbce791ab623dd38231","unresolved":false,"context_lines":[{"line_number":148,"context_line":"An L3 network segment is isolated at the L2 level from other networks but"},{"line_number":149,"context_line":"routed at L3.  They differ from the segments in Neutron\u0027s multiple provider"},{"line_number":150,"context_line":"extension (MPE).  MPE segments are physical or encapsulation layer segments and"},{"line_number":151,"context_line":"L2 flows across segments boundaries."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"When a router or vm is connected to a front network, a port is created on a"},{"line_number":154,"context_line":"backing network.  The particular backing network depends on the host binding of"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_75c95925","line":151,"updated":"2015-06-25 04:26:00.000000000","message":"If by this you mean that I can get treat the entire MPE network as a single L2 broadcast domain, no it actually doesn\u0027t work like this. In other words, if I have one port on S1 and one port on S2, I am unable to send/receive frames between the two.","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":9060,"name":"Mike Dorman","email":"dorm@dorm.org","username":"gd-mdorman"},"change_message_id":"787217d29999521f05df58d3d9efc6cd7ba03b34","unresolved":false,"context_lines":[{"line_number":148,"context_line":"An L3 network segment is isolated at the L2 level from other networks but"},{"line_number":149,"context_line":"routed at L3.  They differ from the segments in Neutron\u0027s multiple provider"},{"line_number":150,"context_line":"extension (MPE).  MPE segments are physical or encapsulation layer segments and"},{"line_number":151,"context_line":"L2 flows across segments boundaries."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"When a router or vm is connected to a front network, a port is created on a"},{"line_number":154,"context_line":"backing network.  The particular backing network depends on the host binding of"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_6b24f10d","line":151,"in_reply_to":"fa32b979_75c95925","updated":"2015-06-25 20:12:54.000000000","message":"But the subnet is common across both segments, right?","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"7859b75bcd8030649e935323f905987a18664284","unresolved":false,"context_lines":[{"line_number":150,"context_line":"extension (MPE).  MPE segments are physical or encapsulation layer segments and"},{"line_number":151,"context_line":"L2 flows across segments boundaries."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"When a router or vm is connected to a front network, a port is created on a"},{"line_number":154,"context_line":"backing network.  The particular backing network depends on the host binding of"},{"line_number":155,"context_line":"the port and the network segment that the host is mapped to."},{"line_number":156,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_195a3851","line":153,"updated":"2015-06-26 16:24:08.000000000","message":"Can a VM be attached to a network that is marked external?  (I didn\u0027t realize that, if so.)","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"9ab44ce37798111ebe863bbce791ab623dd38231","unresolved":false,"context_lines":[{"line_number":150,"context_line":"extension (MPE).  MPE segments are physical or encapsulation layer segments and"},{"line_number":151,"context_line":"L2 flows across segments boundaries."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"When a router or vm is connected to a front network, a port is created on a"},{"line_number":154,"context_line":"backing network.  The particular backing network depends on the host binding of"},{"line_number":155,"context_line":"the port and the network segment that the host is mapped to."},{"line_number":156,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_f5600903","line":153,"updated":"2015-06-25 04:26:00.000000000","message":"Should we compare how this differ from the existing Neutron\u0027s model of connecting a VM/tenant router?","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"7859b75bcd8030649e935323f905987a18664284","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"When a router or vm is connected to a front network, a port is created on a"},{"line_number":154,"context_line":"backing network.  The particular backing network depends on the host binding of"},{"line_number":155,"context_line":"the port and the network segment that the host is mapped to."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"The address from the backing network will serve as the primary address on the"},{"line_number":158,"context_line":"interface.  If a router does not need to be addressed directly on the network"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_14367de7","line":155,"updated":"2015-06-26 16:24:08.000000000","message":"Ah, so multiple backing networks can be associated with a front network?\n\nWhere/how are backing networks configured?","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"7859b75bcd8030649e935323f905987a18664284","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"The address from the backing network will serve as the primary address on the"},{"line_number":158,"context_line":"interface.  If a router does not need to be addressed directly on the network"},{"line_number":159,"context_line":"then no public IP address will be allocated.  Thus, a public IP is saved.  More"},{"line_number":160,"context_line":"on this is described in the no-router-ip blueprint [#]_."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":".. [#] https://blueprints.launchpad.net/neutron/+spec/no-router-ip"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_b4b79139","line":159,"updated":"2015-06-26 16:24:08.000000000","message":"It seems at this point that there are two quite separable ideas here:\n\n- The idea of backing networks for a front network.\n\n- The idea of not allocating an address for a router port, if that router port doesn\u0027t actually need one.\n\nWould it be clearer to separate those ideas out into different specs?","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"7859b75bcd8030649e935323f905987a18664284","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"The backing networks will be implemented as provider networks created by the"},{"line_number":191,"context_line":"admin.  These will not be marked as external networks nor shared so they will"},{"line_number":192,"context_line":"not show up in any tenant\u0027s list of networks."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"For convenience, administrators will probably want to be able to access both"},{"line_number":195,"context_line":"the management and the backing networks from their laptops with a VPN or"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_74b4a9d3","line":192,"updated":"2015-06-26 16:24:08.000000000","message":"OK - but how do they become associated with a tenant-visible (or even tenant-created?) front network?","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":9060,"name":"Mike Dorman","email":"dorm@dorm.org","username":"gd-mdorman"},"change_message_id":"787217d29999521f05df58d3d9efc6cd7ba03b34","unresolved":false,"context_lines":[{"line_number":232,"context_line":""},{"line_number":233,"context_line":"Two tables will be added to support.  The first stores the association of a"},{"line_number":234,"context_line":"network to a host.  Any segment not explicitly associated with one or more"},{"line_number":235,"context_line":"hosts in this table will be considered available to any host."},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":238,"context_line":"Table: **network_host_binding**"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_8bab751e","line":235,"updated":"2015-06-25 20:12:54.000000000","message":"The network to host mapping in and of itself would be useful to us, so we no longer have to overload host aggregates with metadata to store that association.","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"7859b75bcd8030649e935323f905987a18664284","unresolved":false,"context_lines":[{"line_number":232,"context_line":""},{"line_number":233,"context_line":"Two tables will be added to support.  The first stores the association of a"},{"line_number":234,"context_line":"network to a host.  Any segment not explicitly associated with one or more"},{"line_number":235,"context_line":"hosts in this table will be considered available to any host."},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":238,"context_line":"Table: **network_host_binding**"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_2f3faa88","line":235,"in_reply_to":"fa32b979_8bab751e","updated":"2015-06-26 16:24:08.000000000","message":"@Mike - But didn\u0027t you only need that metadata for your previous solution to the problem that backing networks will solve?  In other words, if upstream Neutron evolves so as to provide _any_ solution to that problem, why would you still want to have that network to host mapping encoded in the Neutron DB in a form that you can access?","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"9ab44ce37798111ebe863bbce791ab623dd38231","unresolved":false,"context_lines":[{"line_number":243,"context_line":"host             The host.  Must match the host reported by L2 and L3 agents"},{"line_number":244,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"A unique constraint will be placed on the (network, host) tuple but duplicate"},{"line_number":247,"context_line":"values can be found in both columns independenty."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"The second table associates a front network with one or more backing networks."}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_983c5494","line":246,"updated":"2015-06-25 04:26:00.000000000","message":"aren\u0027t we saying that backing_network and host are primary key?","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":9060,"name":"Mike Dorman","email":"dorm@dorm.org","username":"gd-mdorman"},"change_message_id":"787217d29999521f05df58d3d9efc6cd7ba03b34","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"Finally, there is one more invariant which could be difficult to enforce.  It"},{"line_number":274,"context_line":"is that there should be at most one backing network for any given host to"},{"line_number":275,"context_line":"access any given front_network.  This implies at most one default backing"},{"line_number":276,"context_line":"network per front_network.  The association of front network to host is not"},{"line_number":277,"context_line":"stored explicitly hence the difficulty::"},{"line_number":278,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_9635dcdc","line":275,"updated":"2015-06-25 20:12:54.000000000","message":"I don\u0027t understand why this needs to be enforced.  What if one backing network (a L2 domain) get completely consumed (IP addresses, broadcast traffic, whatever) and thus no more VMs can be added to that backing network.  I would want to create a new backing network, for the same front network, and be able to make that backing network available on the same hosts (so that more VMs may be placed on that host for that front network.)","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"9ab44ce37798111ebe863bbce791ab623dd38231","unresolved":false,"context_lines":[{"line_number":324,"context_line":"unique constraint from that table (i.e. a backing network can only back a"},{"line_number":325,"context_line":"single front network.)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"Thoughts?"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"REST API Impact"},{"line_number":330,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_98bf74cf","line":327,"updated":"2015-06-25 04:26:00.000000000","message":"what\u0027s the relationship between backing_networks and externalnetworks?","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"9ab44ce37798111ebe863bbce791ab623dd38231","unresolved":false,"context_lines":[{"line_number":331,"context_line":""},{"line_number":332,"context_line":"The API will be extended to allow associating a network to a backing network"},{"line_number":333,"context_line":"using a new optional \"backing_network\" attribute on the network resource.  The"},{"line_number":334,"context_line":"following error conditions will be enforced at the API level."},{"line_number":335,"context_line":""},{"line_number":336,"context_line":"#. Setting a network as a backing network when it is already a front network."},{"line_number":337,"context_line":"#. Setting a network as a front network when it is already a backing network."}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_d86f3c5e","line":334,"updated":"2015-06-25 04:26:00.000000000","message":"I think at this point it would be useful to describe how you envision the existing workflow to provision networking resources (public nets, routers, etc.) evolves.\n\nI understand the model changes (which seem to lay over the existing stuff pretty neatly), but I am really unclear at this point what the implications to the reference implementation are. How would that need to change in order to do something useful with these model enhancements?","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"df649e5394f87dd2186e4512bccf2bf3508c0664","unresolved":false,"context_lines":[{"line_number":375,"context_line":""},{"line_number":376,"context_line":"Much of this blueprint is focused on enabling more efficient use of the IPv4"},{"line_number":377,"context_line":"address space.  However, all new functionality will work equally well with"},{"line_number":378,"context_line":"IPv6."},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"Future work to enable L3-only routed networks will enhance the IPv6 experience"},{"line_number":381,"context_line":"in Neutron as well as IPv4 by providing a mechanism to complete the route to"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_c8560a06","line":378,"updated":"2015-06-22 18:45:17.000000000","message":"Based on my understanding of the proposal, The \"backing network\" seems to be a network that connects all the routers (whether neutron routers (e.g., DVRs) or the upstream routers) together, and the links will be numbered with RFC6598 /10 addresses. \n\nIn an IPv6 only deployment, it may not be applicable. In ipv6 case, the LLA address on the link is sufficient.\n\nA different way to achieve the above that I can think of is the separation of floatingip from the external network numbering. In other words, the external network numbering can take addresses from the reserved /10, but the floatingip doesn\u0027t have to be part of the external network. In other words, the floating-ip doesn\u0027t have to be on-link.","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"aa064abba65890caaf3c83bcf3dc38eefc595faa","unresolved":false,"context_lines":[{"line_number":375,"context_line":""},{"line_number":376,"context_line":"Much of this blueprint is focused on enabling more efficient use of the IPv4"},{"line_number":377,"context_line":"address space.  However, all new functionality will work equally well with"},{"line_number":378,"context_line":"IPv6."},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"Future work to enable L3-only routed networks will enhance the IPv6 experience"},{"line_number":381,"context_line":"in Neutron as well as IPv4 by providing a mechanism to complete the route to"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_aeb1b502","line":378,"in_reply_to":"fa32b979_431dfb64","updated":"2015-06-25 15:00:22.000000000","message":"If I understand the topology correctly in the above scenario, then the backing network is a network that connects the local DVRs with the Rack router. However, the link between the Rack router and the Agg router is not on the same network, right? Let\u0027s call this link as RL, and Rack router and the Agg router will have an IP address on each end. I can imagine that the agg router needs to maintain a route for each floating ip so that it can route it to the proper Rack router. In that case, the next hop for the route is the RL\u0027s address on the Rack router, isn\u0027t it? For IPv6, an LLA is sufficient. Even for v4, this address doesn\u0027t seem to have anything to do with the backing network.\n\nThis brings up another question, are all the routers under neutron\u0027s management? And it seems to me that in order for a front network to be functional, a lot of admin work has to be done as well.\n\nAgain, a conceptual network topology would help understand this spec tremendously. And my above comments could be completely wrong without having it clearly in my mind.","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"0aa97afa59a62ef5d0a48cfde041d80c06088309","unresolved":false,"context_lines":[{"line_number":375,"context_line":""},{"line_number":376,"context_line":"Much of this blueprint is focused on enabling more efficient use of the IPv4"},{"line_number":377,"context_line":"address space.  However, all new functionality will work equally well with"},{"line_number":378,"context_line":"IPv6."},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"Future work to enable L3-only routed networks will enhance the IPv6 experience"},{"line_number":381,"context_line":"in Neutron as well as IPv4 by providing a mechanism to complete the route to"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_431dfb64","line":378,"in_reply_to":"fa32b979_c8560a06","updated":"2015-06-22 19:10:46.000000000","message":"The backing networks will be addressed with whatever addresses the operator chooses.  RFC 6598 are suggested for IPv4 to avoid conflict with both public addresses and RFC 1918 addresses used on private tenant networks.\n\nLLA addresses are not sufficient for IPv6.  The addresses must be routable in some context is more than just the link.   They probably should be routable within the site.  Imagine the case where there is a router at the top of each rack and each rack has its own L2 network.  Each rack network will be represented by a backing network.\n\nTo maintain IP address mobility for floating IPs in IPv4 or for tenant networks in IPv6 across the racks, there must be some routing infrastructure above the TOR router level.  This could be just a single agg router in the simplest case.  This agg router needs distinct addresses for each of the racks in order to forward traffic.  LLA addresses don\u0027t offer this.  Here the operator could choose to use ULA or global unicast addresses.","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"},{"author":{"_account_id":9060,"name":"Mike Dorman","email":"dorm@dorm.org","username":"gd-mdorman"},"change_message_id":"787217d29999521f05df58d3d9efc6cd7ba03b34","unresolved":false,"context_lines":[{"line_number":400,"context_line":"  network all in one transaction.  It would have to include moving ports to the"},{"line_number":401,"context_line":"  backing network where applicable (in the same transaction).  The L2 and L3"},{"line_number":402,"context_line":"  agents would have to react to this in a way where everything works before and"},{"line_number":403,"context_line":"  after the change."},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"Developer Impact"},{"line_number":406,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_3653b0e4","line":403,"updated":"2015-06-25 20:12:54.000000000","message":"This type of an upgrade path would be good.  Or also the ability to make existing/legacy Neutron networks into backing networks for a net new front network.  That\u0027s how I would imagine we would implement this.","commit_id":"f3b240bf4e7373012d8ca97758f41b4d1431571f"}]}
