)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"bb2f1f46349ebc1777a4dcbc47dbe30d8aa5b2cc","unresolved":false,"context_lines":[{"line_number":17,"context_line":"- Linux kernel utilities, iptables, namespaces (like before)"},{"line_number":18,"context_line":"- Open vSwitch (the backend being introduced)"},{"line_number":19,"context_line":"- \u003copen possibilities\u003e"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Related-Bug: #1705536"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Co-Authored-By: Igor D.C. \u003cigor.duarte.cardoso@intel.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5fc1f717_66b3cf4e","line":20,"updated":"2019-03-12 14:36:32.000000000","message":"\u003e Please add following tag then we can trace all the patch with right\n \u003e BP:\n \u003e Partially-Implements: blueprint openflow-based-dvr","commit_id":"2ffbcb7a590281d329359bfefe3485296c3882bc"}],"specs/stein/dvr-bridge.rst":[{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"9eb9ccc3797bc795233b976a6a58b03333d52541","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"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"},{"line_number":8,"context_line":"DVR Bridge, Experimental Open vSwitch Agent Mode"},{"line_number":9,"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://bugs.launchpad.net/neutron/+bug/1705536"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_0c7ed96a","line":8,"range":{"start_line":8,"start_character":10,"end_line":8,"end_character":12},"updated":"2019-01-10 07:34:19.000000000","message":"-","commit_id":"1b11712daa5a548131d5ad52fa93e616f579fbba"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"9eb9ccc3797bc795233b976a6a58b03333d52541","unresolved":false,"context_lines":[{"line_number":26,"context_line":"backend can be introduced without the need of creating mechanism drivers"},{"line_number":27,"context_line":"similar to the L2 agent."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This proposed agent_mode, hence refered to as \"dvr_bridge\"[1], will use"},{"line_number":30,"context_line":"Open vSwitch Bridges as a substitute for linux network namespaces."},{"line_number":31,"context_line":"These routers are passed an iface_id when and interface is created and the"},{"line_number":32,"context_line":"L2-agent will assign a vlan_tag to the bridges patch ports when their"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_d124eec8","line":29,"range":{"start_line":29,"start_character":47,"end_line":29,"end_character":57},"updated":"2019-01-10 07:34:19.000000000","message":"Could we call it dvr_ovs since the work is specific to OVS bridges?","commit_id":"1b11712daa5a548131d5ad52fa93e616f579fbba"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"9eb9ccc3797bc795233b976a6a58b03333d52541","unresolved":false,"context_lines":[{"line_number":27,"context_line":"similar to the L2 agent."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This proposed agent_mode, hence refered to as \"dvr_bridge\"[1], will use"},{"line_number":30,"context_line":"Open vSwitch Bridges as a substitute for linux network namespaces."},{"line_number":31,"context_line":"These routers are passed an iface_id when and interface is created and the"},{"line_number":32,"context_line":"L2-agent will assign a vlan_tag to the bridges patch ports when their"},{"line_number":33,"context_line":"creation is detected. This will cause the traffic on the br-int to be"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_b154ca22","line":30,"range":{"start_line":30,"start_character":13,"end_line":30,"end_character":20},"updated":"2019-01-10 07:34:19.000000000","message":"bridges","commit_id":"1b11712daa5a548131d5ad52fa93e616f579fbba"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"9eb9ccc3797bc795233b976a6a58b03333d52541","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This proposed agent_mode, hence refered to as \"dvr_bridge\"[1], will use"},{"line_number":30,"context_line":"Open vSwitch Bridges as a substitute for linux network namespaces."},{"line_number":31,"context_line":"These routers are passed an iface_id when and interface is created and the"},{"line_number":32,"context_line":"L2-agent will assign a vlan_tag to the bridges patch ports when their"},{"line_number":33,"context_line":"creation is detected. This will cause the traffic on the br-int to be"},{"line_number":34,"context_line":"automatically sent to the relevant \"dvr bridge\" when it encounters a \"Normal\""}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_d15f0e3f","line":31,"range":{"start_line":31,"start_character":42,"end_line":31,"end_character":45},"updated":"2019-01-10 07:34:19.000000000","message":"an","commit_id":"1b11712daa5a548131d5ad52fa93e616f579fbba"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"9eb9ccc3797bc795233b976a6a58b03333d52541","unresolved":false,"context_lines":[{"line_number":36,"context_line":"to the br-int flow table or the L2-agent."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"In order to route traffic to the correct destination, OpenFlow rules"},{"line_number":39,"context_line":"are used to emulate kernal routes. This involves classifying the traffic,"},{"line_number":40,"context_line":"decrementing the time to live, updating the mac"},{"line_number":41,"context_line":"information and outputing it to the appropriate port for east/west traffic."},{"line_number":42,"context_line":"In the case of north/south traffic, the same workflow is used however the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_711d0272","line":39,"range":{"start_line":39,"start_character":20,"end_line":39,"end_character":26},"updated":"2019-01-10 07:34:19.000000000","message":"kernel","commit_id":"1b11712daa5a548131d5ad52fa93e616f579fbba"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"9eb9ccc3797bc795233b976a6a58b03333d52541","unresolved":false,"context_lines":[{"line_number":36,"context_line":"to the br-int flow table or the L2-agent."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"In order to route traffic to the correct destination, OpenFlow rules"},{"line_number":39,"context_line":"are used to emulate kernal routes. This involves classifying the traffic,"},{"line_number":40,"context_line":"decrementing the time to live, updating the mac"},{"line_number":41,"context_line":"information and outputing it to the appropriate port for east/west traffic."},{"line_number":42,"context_line":"In the case of north/south traffic, the same workflow is used however the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_cc121159","line":39,"range":{"start_line":39,"start_character":12,"end_line":39,"end_character":33},"updated":"2019-01-10 07:34:19.000000000","message":"maybe replace with: \"build and run the routing table, typically implemented by the Linux kernel instead.\"","commit_id":"1b11712daa5a548131d5ad52fa93e616f579fbba"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"9eb9ccc3797bc795233b976a6a58b03333d52541","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"In order to route traffic to the correct destination, OpenFlow rules"},{"line_number":39,"context_line":"are used to emulate kernal routes. This involves classifying the traffic,"},{"line_number":40,"context_line":"decrementing the time to live, updating the mac"},{"line_number":41,"context_line":"information and outputing it to the appropriate port for east/west traffic."},{"line_number":42,"context_line":"In the case of north/south traffic, the same workflow is used however the"},{"line_number":43,"context_line":"destination mac addresses are not available from neutron."},{"line_number":44,"context_line":"For north/south traffic, arp requests are generate through the use of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_8c35e9dc","line":41,"range":{"start_line":40,"start_character":40,"end_line":41,"end_character":11},"updated":"2019-01-10 07:34:19.000000000","message":"MAC addresses","commit_id":"1b11712daa5a548131d5ad52fa93e616f579fbba"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"9eb9ccc3797bc795233b976a6a58b03333d52541","unresolved":false,"context_lines":[{"line_number":38,"context_line":"In order to route traffic to the correct destination, OpenFlow rules"},{"line_number":39,"context_line":"are used to emulate kernal routes. This involves classifying the traffic,"},{"line_number":40,"context_line":"decrementing the time to live, updating the mac"},{"line_number":41,"context_line":"information and outputing it to the appropriate port for east/west traffic."},{"line_number":42,"context_line":"In the case of north/south traffic, the same workflow is used however the"},{"line_number":43,"context_line":"destination mac addresses are not available from neutron."},{"line_number":44,"context_line":"For north/south traffic, arp requests are generate through the use of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_ac178d45","line":41,"range":{"start_line":41,"start_character":16,"end_line":41,"end_character":25},"updated":"2019-01-10 07:34:19.000000000","message":"outputting","commit_id":"1b11712daa5a548131d5ad52fa93e616f579fbba"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"9eb9ccc3797bc795233b976a6a58b03333d52541","unresolved":false,"context_lines":[{"line_number":41,"context_line":"information and outputing it to the appropriate port for east/west traffic."},{"line_number":42,"context_line":"In the case of north/south traffic, the same workflow is used however the"},{"line_number":43,"context_line":"destination mac addresses are not available from neutron."},{"line_number":44,"context_line":"For north/south traffic, arp requests are generate through the use of"},{"line_number":45,"context_line":"flows which convert local arp requests into arp requests targeting"},{"line_number":46,"context_line":"the external gateways."},{"line_number":47,"context_line":"These requests are used by learn action flows, to generate flows with the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_0c2259a5","line":44,"range":{"start_line":44,"start_character":42,"end_line":44,"end_character":50},"updated":"2019-01-10 07:34:19.000000000","message":"generated","commit_id":"1b11712daa5a548131d5ad52fa93e616f579fbba"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"9eb9ccc3797bc795233b976a6a58b03333d52541","unresolved":false,"context_lines":[{"line_number":41,"context_line":"information and outputing it to the appropriate port for east/west traffic."},{"line_number":42,"context_line":"In the case of north/south traffic, the same workflow is used however the"},{"line_number":43,"context_line":"destination mac addresses are not available from neutron."},{"line_number":44,"context_line":"For north/south traffic, arp requests are generate through the use of"},{"line_number":45,"context_line":"flows which convert local arp requests into arp requests targeting"},{"line_number":46,"context_line":"the external gateways."},{"line_number":47,"context_line":"These requests are used by learn action flows, to generate flows with the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_ec36f5e7","line":44,"range":{"start_line":44,"start_character":25,"end_line":44,"end_character":28},"updated":"2019-01-10 07:34:19.000000000","message":"make all \"arp\"s (and other acronyms) uppercase throughout spec","commit_id":"1b11712daa5a548131d5ad52fa93e616f579fbba"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"9eb9ccc3797bc795233b976a6a58b03333d52541","unresolved":false,"context_lines":[{"line_number":47,"context_line":"These requests are used by learn action flows, to generate flows with the"},{"line_number":48,"context_line":"required mac information for the packet to be forwarded to the next hop."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"As there will not be an interfaces created in the dataplane for these dvr bridges,"},{"line_number":51,"context_line":"OpenFlow flows will be used to convert ICMP/ARP requests into replies."},{"line_number":52,"context_line":"These flows will also follow the same workflow described above."},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_ac30ede9","line":50,"range":{"start_line":50,"start_character":24,"end_line":50,"end_character":34},"updated":"2019-01-10 07:34:19.000000000","message":"interface","commit_id":"1b11712daa5a548131d5ad52fa93e616f579fbba"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"9eb9ccc3797bc795233b976a6a58b03333d52541","unresolved":false,"context_lines":[{"line_number":47,"context_line":"These requests are used by learn action flows, to generate flows with the"},{"line_number":48,"context_line":"required mac information for the packet to be forwarded to the next hop."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"As there will not be an interfaces created in the dataplane for these dvr bridges,"},{"line_number":51,"context_line":"OpenFlow flows will be used to convert ICMP/ARP requests into replies."},{"line_number":52,"context_line":"These flows will also follow the same workflow described above."},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_6c876563","line":50,"range":{"start_line":50,"start_character":81,"end_line":50,"end_character":82},"updated":"2019-01-10 07:34:19.000000000","message":"please reformat the document with max line length \u003d 79 to aid review and side-by-side comparisons","commit_id":"1b11712daa5a548131d5ad52fa93e616f579fbba"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"9eb9ccc3797bc795233b976a6a58b03333d52541","unresolved":false,"context_lines":[{"line_number":48,"context_line":"required mac information for the packet to be forwarded to the next hop."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"As there will not be an interfaces created in the dataplane for these dvr bridges,"},{"line_number":51,"context_line":"OpenFlow flows will be used to convert ICMP/ARP requests into replies."},{"line_number":52,"context_line":"These flows will also follow the same workflow described above."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"These changes would result in the performance of L3 traffic approaching that of L2 traffic."}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_cc69b1be","line":51,"range":{"start_line":51,"start_character":39,"end_line":51,"end_character":43},"updated":"2019-01-10 07:34:19.000000000","message":"ICMP[v6] for IPv6 case only correct?","commit_id":"1b11712daa5a548131d5ad52fa93e616f579fbba"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"9eb9ccc3797bc795233b976a6a58b03333d52541","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"DataPlane East/West overview [FURTHER READING]"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"l3 ping packet flow in dvr mode(simplified to ignore broadcast):"},{"line_number":60,"context_line":"logical:"},{"line_number":61,"context_line":"- the arp packet is received from the source vm and logically vlan tagged(tenant isolation)"},{"line_number":62,"context_line":"- the arp packet is output to the router tap device(tap1), the vlan is striped and the packet is copied from the ovs dataplane to the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_ccae91e6","line":59,"range":{"start_line":59,"start_character":23,"end_line":59,"end_character":26},"updated":"2019-01-10 07:34:19.000000000","message":"Clarify in this line that this is the behavior before dvr_bridge - make it stand out.","commit_id":"1b11712daa5a548131d5ad52fa93e616f579fbba"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"9eb9ccc3797bc795233b976a6a58b03333d52541","unresolved":false,"context_lines":[{"line_number":86,"context_line":"- kernel updates dest mac and decrement ttl the forward icmp reply packet to tap1"},{"line_number":87,"context_line":"- tap1-\u003e source vm"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"l3 packet flow in dvr_bridge mode:"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"logical:"},{"line_number":92,"context_line":"- the arp packet is received from the source vm and logically vlan tagged(tenant isolation)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_8cb8892a","line":89,"range":{"start_line":89,"start_character":18,"end_line":89,"end_character":28},"updated":"2019-01-10 07:34:19.000000000","message":"Clarify in this line that this is the behavior after dvr_bridge - make it stand out.","commit_id":"1b11712daa5a548131d5ad52fa93e616f579fbba"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"9eb9ccc3797bc795233b976a6a58b03333d52541","unresolved":false,"context_lines":[{"line_number":91,"context_line":"logical:"},{"line_number":92,"context_line":"- the arp packet is received from the source vm and logically vlan tagged(tenant isolation)"},{"line_number":93,"context_line":"- the arp packet is output to the router bridge patch port , and the vlan is stripped"},{"line_number":94,"context_line":"- the arp request is rewritten into a reply and sent back to the br-int and logically vlan tagged"},{"line_number":95,"context_line":"- the vlan is logically striped and the arp reply switched to the source vm interface."},{"line_number":96,"context_line":"- the icmp packet is received from the source vm and logically vlan tagged(tenant isolation)"},{"line_number":97,"context_line":"- the icmp packet is output to the router bridge patch port , the vlan is striped."}],"source_content_type":"text/x-rst","patch_set":1,"id":"dfd5e7cf_0ca57904","line":94,"range":{"start_line":94,"start_character":6,"end_line":94,"end_character":17},"updated":"2019-01-10 07:34:19.000000000","message":"ARP packet (request)","commit_id":"1b11712daa5a548131d5ad52fa93e616f579fbba"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"54f591a8ba71d2cbedf15d00c6596caafa6a0495","unresolved":false,"context_lines":[{"line_number":48,"context_line":"These requests are used by learn action flows, to generate flows with the"},{"line_number":49,"context_line":"required MAC information for the packet to be forwarded to the next hop."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"As there will not be an interface created in the dataplane for these "},{"line_number":52,"context_line":"DVR bridges, OpenFlow flows will be used to convert ARP requests into replies."},{"line_number":53,"context_line":"These flows will also follow the same workflow described above."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bfdaf3ff_9988e6c6","line":51,"range":{"start_line":51,"start_character":68,"end_line":51,"end_character":69},"updated":"2019-01-14 18:30:38.000000000","message":"will fix","commit_id":"df3a2b6f3284922ff24f33ca50097e09cc814394"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"54f591a8ba71d2cbedf15d00c6596caafa6a0495","unresolved":false,"context_lines":[{"line_number":75,"context_line":"  switched to the source VM interface."},{"line_number":76,"context_line":"- the ICMP packet is received from the source VM and"},{"line_number":77,"context_line":"  logically VLAN tagged (tenant isolation)"},{"line_number":78,"context_line":"- the ICMP packet is output to the routee tap device, the VLAN "},{"line_number":79,"context_line":"  is stripped and the packet is copied from the OVS dataplane to"},{"line_number":80,"context_line":"  the kernel networking stack in the routers linux namespace."},{"line_number":81,"context_line":"- the kernel generates an ARP request to the destination VM which"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bfdaf3ff_f9a3324e","line":78,"range":{"start_line":78,"start_character":62,"end_line":78,"end_character":63},"updated":"2019-01-14 18:30:38.000000000","message":"will fix","commit_id":"df3a2b6f3284922ff24f33ca50097e09cc814394"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"54f591a8ba71d2cbedf15d00c6596caafa6a0495","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"bfdaf3ff_798f42cc","line":147,"updated":"2019-01-14 18:30:38.000000000","message":"will add link to rfe here too","commit_id":"df3a2b6f3284922ff24f33ca50097e09cc814394"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"d3e69c67a3fe034e578945e731046bc9f6ff80ab","unresolved":false,"context_lines":[{"line_number":16,"context_line":"choke point for bandwidth on east/west and north/south traffic [1]."},{"line_number":17,"context_line":"In the case of east/west traffic, the source and destination interfaces"},{"line_number":18,"context_line":"are known to Neutron and could be routed using Open vSwitch if it is"},{"line_number":19,"context_line":"selected as the mechanism_driver for the L2-agent."},{"line_number":20,"context_line":"This also makes the l3-agent incompatible with DPDK and Windows."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bfdaf3ff_5480038c","line":19,"range":{"start_line":19,"start_character":16,"end_line":19,"end_character":32},"updated":"2019-01-14 19:56:00.000000000","message":"nit: mechanism driver","commit_id":"f73918b669e43470219c8b19759945671baf70fe"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"d5ad201d52a28604950809ebc89757ce0afcaf4f","unresolved":false,"context_lines":[{"line_number":16,"context_line":"choke point for bandwidth on east/west and north/south traffic [1]."},{"line_number":17,"context_line":"In the case of east/west traffic, the source and destination interfaces"},{"line_number":18,"context_line":"are known to Neutron and could be routed using Open vSwitch if it is"},{"line_number":19,"context_line":"selected as the mechanism_driver for the L2-agent."},{"line_number":20,"context_line":"This also makes the l3-agent incompatible with DPDK and Windows."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bfdaf3ff_967861c4","line":19,"range":{"start_line":19,"start_character":16,"end_line":19,"end_character":32},"in_reply_to":"bfdaf3ff_5480038c","updated":"2019-01-17 23:53:52.000000000","message":"Done","commit_id":"f73918b669e43470219c8b19759945671baf70fe"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"d3e69c67a3fe034e578945e731046bc9f6ff80ab","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Proposed Change"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":"By introducing a new agent_mode to the l3-agent the use of an Open vSwitch"},{"line_number":26,"context_line":"backend can be introduced without the need of creating mechanism drivers"},{"line_number":27,"context_line":"similar to the L2 agent."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This proposed agent_mode, hence refered to as \"dvr_bridge\" [2], will use"},{"line_number":30,"context_line":"Open vSwitch bridges as a substitute for linux network namespaces."}],"source_content_type":"text/x-rst","patch_set":3,"id":"bfdaf3ff_2f040c15","line":27,"range":{"start_line":26,"start_character":46,"end_line":27,"end_character":24},"updated":"2019-01-14 19:56:00.000000000","message":"IMO, this is creating more confusion, do you mean without the use of L3 plugins ? so let me add more on that,\n\nyou can either choose only one L3 plugin in entire deployment or if you\u0027re using L3 flavors then only multiple L3 backends can be used. but L2 design is bit different, for that sake this whole comparison is confusing.\n\nNote: -1 won\u0027t be because of this comment.","commit_id":"f73918b669e43470219c8b19759945671baf70fe"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"d5ad201d52a28604950809ebc89757ce0afcaf4f","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Proposed Change"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":"By introducing a new agent_mode to the l3-agent the use of an Open vSwitch"},{"line_number":26,"context_line":"backend can be introduced without the need of creating mechanism drivers"},{"line_number":27,"context_line":"similar to the L2 agent."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This proposed agent_mode, hence refered to as \"dvr_bridge\" [2], will use"},{"line_number":30,"context_line":"Open vSwitch bridges as a substitute for linux network namespaces."}],"source_content_type":"text/x-rst","patch_set":3,"id":"bfdaf3ff_567e79af","line":27,"range":{"start_line":26,"start_character":46,"end_line":27,"end_character":24},"in_reply_to":"bfdaf3ff_2f040c15","updated":"2019-01-17 23:53:52.000000000","message":"I\u0027m sharing the same confusion as you do but I can go ahead and rewrite this a bit.","commit_id":"f73918b669e43470219c8b19759945671baf70fe"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"d3e69c67a3fe034e578945e731046bc9f6ff80ab","unresolved":false,"context_lines":[{"line_number":42,"context_line":"port for east/west traffic."},{"line_number":43,"context_line":"In the case of north/south traffic, the same workflow is used however the"},{"line_number":44,"context_line":"destination MAC addresses are not available from neutron."},{"line_number":45,"context_line":"For north/south traffic, ARP requests are generate through the use of"},{"line_number":46,"context_line":"flows which convert local ARP requests into ARP requests targeting"},{"line_number":47,"context_line":"the external gateways."},{"line_number":48,"context_line":"These requests are used by learn action flows, to generate flows with the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bfdaf3ff_2f52cc14","line":45,"range":{"start_line":45,"start_character":42,"end_line":45,"end_character":50},"updated":"2019-01-14 19:56:00.000000000","message":"nit: generated","commit_id":"f73918b669e43470219c8b19759945671baf70fe"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"d5ad201d52a28604950809ebc89757ce0afcaf4f","unresolved":false,"context_lines":[{"line_number":42,"context_line":"port for east/west traffic."},{"line_number":43,"context_line":"In the case of north/south traffic, the same workflow is used however the"},{"line_number":44,"context_line":"destination MAC addresses are not available from neutron."},{"line_number":45,"context_line":"For north/south traffic, ARP requests are generate through the use of"},{"line_number":46,"context_line":"flows which convert local ARP requests into ARP requests targeting"},{"line_number":47,"context_line":"the external gateways."},{"line_number":48,"context_line":"These requests are used by learn action flows, to generate flows with the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bfdaf3ff_767b7dbd","line":45,"range":{"start_line":45,"start_character":42,"end_line":45,"end_character":50},"in_reply_to":"bfdaf3ff_2f52cc14","updated":"2019-01-17 23:53:52.000000000","message":"Done","commit_id":"f73918b669e43470219c8b19759945671baf70fe"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"d3e69c67a3fe034e578945e731046bc9f6ff80ab","unresolved":false,"context_lines":[{"line_number":76,"context_line":"  switched to the source VM interface."},{"line_number":77,"context_line":"- the ICMP packet is received from the source VM and"},{"line_number":78,"context_line":"  logically VLAN tagged (tenant isolation)"},{"line_number":79,"context_line":"- the ICMP packet is output to the routee tap device, the VLAN"},{"line_number":80,"context_line":"  is stripped and the packet is copied from the OVS dataplane to"},{"line_number":81,"context_line":"  the kernel networking stack in the routers linux namespace."},{"line_number":82,"context_line":"- the kernel generates an ARP request to the destination VM which"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bfdaf3ff_af66bcec","line":79,"range":{"start_line":79,"start_character":35,"end_line":79,"end_character":41},"updated":"2019-01-14 19:56:00.000000000","message":"router","commit_id":"f73918b669e43470219c8b19759945671baf70fe"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"d5ad201d52a28604950809ebc89757ce0afcaf4f","unresolved":false,"context_lines":[{"line_number":76,"context_line":"  switched to the source VM interface."},{"line_number":77,"context_line":"- the ICMP packet is received from the source VM and"},{"line_number":78,"context_line":"  logically VLAN tagged (tenant isolation)"},{"line_number":79,"context_line":"- the ICMP packet is output to the routee tap device, the VLAN"},{"line_number":80,"context_line":"  is stripped and the packet is copied from the OVS dataplane to"},{"line_number":81,"context_line":"  the kernel networking stack in the routers linux namespace."},{"line_number":82,"context_line":"- the kernel generates an ARP request to the destination VM which"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bfdaf3ff_164eb196","line":79,"range":{"start_line":79,"start_character":35,"end_line":79,"end_character":41},"in_reply_to":"bfdaf3ff_af66bcec","updated":"2019-01-17 23:53:52.000000000","message":"Done","commit_id":"f73918b669e43470219c8b19759945671baf70fe"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"a3983ed3900f674ba1cea98008542bac852bdee6","unresolved":false,"context_lines":[{"line_number":17,"context_line":"In the case of east/west traffic, the source and destination interfaces"},{"line_number":18,"context_line":"are known to Neutron and could be routed using Open vSwitch if it is"},{"line_number":19,"context_line":"selected as the mechanism driver for the L2 agent."},{"line_number":20,"context_line":"Moreover, L3 agent is currently incompatible with DPDK and Windows."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bfdaf3ff_6133b2f7","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":67},"updated":"2019-01-18 10:53:58.000000000","message":"Something else that could be added, if the L3 agent is running an OvS backend it means that it could synergies with the work done on SmartNICs and allow both the L2-agent and L3-agent to be offloaded into a SmartNIC","commit_id":"2ffbcb7a590281d329359bfefe3485296c3882bc"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"df42583929be8a39646131b62d2bab741557c103","unresolved":false,"context_lines":[{"line_number":17,"context_line":"In the case of east/west traffic, the source and destination interfaces"},{"line_number":18,"context_line":"are known to Neutron and could be routed using Open vSwitch if it is"},{"line_number":19,"context_line":"selected as the mechanism driver for the L2 agent."},{"line_number":20,"context_line":"Moreover, L3 agent is currently incompatible with DPDK and Windows."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9fdfeff1_b5188875","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":67},"in_reply_to":"bfdaf3ff_6133b2f7","updated":"2019-01-18 19:10:23.000000000","message":"Good point.. I\u0027ll add that.","commit_id":"2ffbcb7a590281d329359bfefe3485296c3882bc"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"f855391efc79ed0b8422f38aa44f29bebf7f3aca","unresolved":false,"context_lines":[{"line_number":35,"context_line":"action in the br-int flow table. As a result ``dvr_bridge`` requires no changes"},{"line_number":36,"context_line":"to the br-int flow table or the L2 agent."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"In order to route traffic to the correct destination, OpenFlow flows"},{"line_number":39,"context_line":"are used to build and run the routing table, typically implemented by the"},{"line_number":40,"context_line":"Linux kernel instead. This involves classifying the traffic, decrementing the"},{"line_number":41,"context_line":"TTL (time to live), updating MAC addresses, and outputting to the appropriate"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bfdaf3ff_e106c21c","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":25},"updated":"2019-01-18 10:51:05.000000000","message":"In order for traffic to be routed","commit_id":"2ffbcb7a590281d329359bfefe3485296c3882bc"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"df42583929be8a39646131b62d2bab741557c103","unresolved":false,"context_lines":[{"line_number":35,"context_line":"action in the br-int flow table. As a result ``dvr_bridge`` requires no changes"},{"line_number":36,"context_line":"to the br-int flow table or the L2 agent."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"In order to route traffic to the correct destination, OpenFlow flows"},{"line_number":39,"context_line":"are used to build and run the routing table, typically implemented by the"},{"line_number":40,"context_line":"Linux kernel instead. This involves classifying the traffic, decrementing the"},{"line_number":41,"context_line":"TTL (time to live), updating MAC addresses, and outputting to the appropriate"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9fdfeff1_152154a0","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":25},"in_reply_to":"bfdaf3ff_e106c21c","updated":"2019-01-18 19:10:23.000000000","message":"Will fix.","commit_id":"2ffbcb7a590281d329359bfefe3485296c3882bc"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"432fa785fb9d815e63c2007b04d9a57c2619b9a9","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem Description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":"The use of Linux network namespaces in the L3 agent routers causes a"},{"line_number":16,"context_line":"choke point for bandwidth on east/west and north/south traffic [1]."},{"line_number":17,"context_line":"In the case of east/west traffic, the source and destination interfaces"},{"line_number":18,"context_line":"are known to Neutron and could be routed using Open vSwitch if it is"},{"line_number":19,"context_line":"selected as the mechanism driver for the L2 agent."}],"source_content_type":"text/x-rst","patch_set":5,"id":"bfb3d3c7_46ea6a0f","line":16,"range":{"start_line":16,"start_character":29,"end_line":16,"end_character":54},"updated":"2019-05-23 01:39:52.000000000","message":"For current DVR implemention, we could config the compute node as \"dvr_no_external\", which means the cluster could have distributed east/west and centralized north/south traffic. So I do not see such illustration in this spec, it will be considered or not?","commit_id":"d1f2d695a7db201790e2917f77b7b98a047d7cc4"},{"author":{"_account_id":4187,"name":"Ryan Tidwell","email":"rtidwell@suse.com","username":"ryan-tidwell"},"change_message_id":"d8c96f3e4d64cf826454c19f88cab8f56234dbeb","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Proposed Change"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":"By introducing a new ``agent_mode`` to the L3 agent the use of an Open vSwitch"},{"line_number":26,"context_line":"backend for routing can be introduced without any changes to the Open vSwitch"},{"line_number":27,"context_line":"architecture or components present within ML2 (where L3 is out of scope)."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fce034c_fe2a5f8e","line":25,"range":{"start_line":25,"start_character":23,"end_line":25,"end_character":33},"updated":"2019-04-11 15:10:09.000000000","message":"agent_mode already has a specific meaning in terms of configuration options for the L3 agent. I would suggest (and I think the patches I\u0027ve seen are taking this approach) adding a new flag called \"agent_backend\" to be used for toggling the backend for \"linux\" to \"dvr_bridge\".","commit_id":"d1f2d695a7db201790e2917f77b7b98a047d7cc4"},{"author":{"_account_id":30156,"name":"Igor D.C.","email":"igor.duarte.cardoso@intel.com","username":"igordc"},"change_message_id":"e88f5f5c2870fe18a53734ec4d5d8b64c0a3b397","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Proposed Change"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":"By introducing a new ``agent_mode`` to the L3 agent the use of an Open vSwitch"},{"line_number":26,"context_line":"backend for routing can be introduced without any changes to the Open vSwitch"},{"line_number":27,"context_line":"architecture or components present within ML2 (where L3 is out of scope)."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fce034c_78f75ff7","line":25,"range":{"start_line":25,"start_character":23,"end_line":25,"end_character":33},"in_reply_to":"3fce034c_fe2a5f8e","updated":"2019-04-11 19:14:42.000000000","message":"Right, this spec is now outdated :(","commit_id":"d1f2d695a7db201790e2917f77b7b98a047d7cc4"},{"author":{"_account_id":4187,"name":"Ryan Tidwell","email":"rtidwell@suse.com","username":"ryan-tidwell"},"change_message_id":"d8c96f3e4d64cf826454c19f88cab8f56234dbeb","unresolved":false,"context_lines":[{"line_number":141,"context_line":"  destination VM (single OpenFlow action)"},{"line_number":142,"context_line":"- ICMP from destination VM -\u003e destination MAC updated, TTL decremented -\u003e"},{"line_number":143,"context_line":"  source VM (single OpenFlow action)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Configuration"},{"line_number":147,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fce034c_21ae8ae7","line":144,"updated":"2019-04-11 15:10:09.000000000","message":"Can we get a packet flow breakdown on north-south traffic. We should be sure we get parity with the current implementation. I believe it is important that things like neutron-dynamic-routing are able to operate alongside dvr_bridge, so ensuring that things like DVR fast-exit/entrance should be part of this.\n\nOn the topic of parity, I would also like to see some discussion of address scopes as well. This makes no mention of them, we should be sure that dvr_bridge handles them the same way the current L3 agent implementation does.","commit_id":"d1f2d695a7db201790e2917f77b7b98a047d7cc4"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"1697bc4e427afe2cac917d77ef3113b6c456b507","unresolved":false,"context_lines":[{"line_number":141,"context_line":"  destination VM (single OpenFlow action)"},{"line_number":142,"context_line":"- ICMP from destination VM -\u003e destination MAC updated, TTL decremented -\u003e"},{"line_number":143,"context_line":"  source VM (single OpenFlow action)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Configuration"},{"line_number":147,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fce034c_25ed2fef","line":144,"in_reply_to":"3fce034c_186c1b35","updated":"2019-04-11 21:19:35.000000000","message":"Thanks Ryan, yep the PTG is the best. Unfortunately neither Xubo nor me are going. Manjeet will be covering for us with regards to DVR. I want to at least be available on IRC while you guys meet so some conversation can be had.","commit_id":"d1f2d695a7db201790e2917f77b7b98a047d7cc4"},{"author":{"_account_id":4187,"name":"Ryan Tidwell","email":"rtidwell@suse.com","username":"ryan-tidwell"},"change_message_id":"91adcdfbc1eea103d8785e86c828affcbd25c28f","unresolved":false,"context_lines":[{"line_number":141,"context_line":"  destination VM (single OpenFlow action)"},{"line_number":142,"context_line":"- ICMP from destination VM -\u003e destination MAC updated, TTL decremented -\u003e"},{"line_number":143,"context_line":"  source VM (single OpenFlow action)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Configuration"},{"line_number":147,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fce034c_186c1b35","line":144,"in_reply_to":"3fce034c_18c5fb8e","updated":"2019-04-11 19:44:04.000000000","message":"Let\u0027s discuss at the PTG, I have a DVR session proposed and this is one of the topics I want to hit on. There should be some level of basic level of parity we aim for, and that should be spelled out.\n\nIn my opinion, some of these things like fast-exit and address scopes aren\u0027t really \"features\" per se and are more like basic functionality. As such, I don\u0027t view address scopes as optional given the contract that the ML2 plugin makes by implementing the extension. With regard to DVR fast-exit, the reason that we came back and added it as a \"feature\" is because the design of DVR was lacking from the start. I don\u0027t want to make that mistake here, packet flow in and out of compute nodes is a basic thing to have nailed down before proceeding.\n\nTo me, there are things that have to be a part of the basic design that we should not settle for iterating towards. Those need to be identified and spelled out here, I think the PTG is a perfect forum for jump-starting this conversation.","commit_id":"d1f2d695a7db201790e2917f77b7b98a047d7cc4"},{"author":{"_account_id":30156,"name":"Igor D.C.","email":"igor.duarte.cardoso@intel.com","username":"igordc"},"change_message_id":"e88f5f5c2870fe18a53734ec4d5d8b64c0a3b397","unresolved":false,"context_lines":[{"line_number":141,"context_line":"  destination VM (single OpenFlow action)"},{"line_number":142,"context_line":"- ICMP from destination VM -\u003e destination MAC updated, TTL decremented -\u003e"},{"line_number":143,"context_line":"  source VM (single OpenFlow action)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Configuration"},{"line_number":147,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fce034c_18c5fb8e","line":144,"in_reply_to":"3fce034c_21ae8ae7","updated":"2019-04-11 19:14:42.000000000","message":"We need to add more info here indeed. Especially since we\u0027re not aiming at full feature parity with the linux-based DVR. IPv6 will be one of the things not part of the version, since there was an issue with Open vSwitch.","commit_id":"d1f2d695a7db201790e2917f77b7b98a047d7cc4"}]}
