)]}'
{"specs/xena/flow-based-dvr-l3.rst":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"0a8d5664cf75c79dd4e1270bcc36b1384c4e6887","unresolved":true,"context_lines":[{"line_number":44,"context_line":"    vice versa"},{"line_number":45,"context_line":"  - ARP reply for local FIPs (FIPs associated to local VMs)."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Note: secrity group/firewall_driver must use openvswitch."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"In order to implement these functions, neutron ovs agent and neutron l3 agent"},{"line_number":50,"context_line":"will be changed as below:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"c96fcc7d_000a31a5","line":47,"range":{"start_line":47,"start_character":6,"end_line":47,"end_character":13},"updated":"2021-06-18 07:25:10.000000000","message":"nit: security","commit_id":"d4138041725313573d20447f1f6c37b6690f8313"},{"author":{"_account_id":30454,"name":"Yi Yang","email":"yangyi01@inspur.com","username":"yangyi01"},"change_message_id":"575c5fbd758088e8692a00a0a8c013c3adfecfb2","unresolved":true,"context_lines":[{"line_number":44,"context_line":"    vice versa"},{"line_number":45,"context_line":"  - ARP reply for local FIPs (FIPs associated to local VMs)."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Note: secrity group/firewall_driver must use openvswitch."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"In order to implement these functions, neutron ovs agent and neutron l3 agent"},{"line_number":50,"context_line":"will be changed as below:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"48425d54_87dc76b5","line":47,"range":{"start_line":47,"start_character":6,"end_line":47,"end_character":13},"in_reply_to":"c96fcc7d_000a31a5","updated":"2021-06-18 07:43:10.000000000","message":"Good catch, tox check didn\u0027t report this spelling error. Will change it in next update.","commit_id":"d4138041725313573d20447f1f6c37b6690f8313"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"0a8d5664cf75c79dd4e1270bcc36b1384c4e6887","unresolved":true,"context_lines":[{"line_number":55,"context_line":"1. Add 4 new tables:"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"   # local static ARP, routing table for qrouter"},{"line_number":58,"context_line":"   LOCAL_QROUTER_ARP_TABLE \u003d 101"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"   # FIP to VMIP table, local FIP ARP reply, learn MAC from FIP ARP reply"},{"line_number":61,"context_line":"   FIP_TO_VMIP_TABLE \u003d 102"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3908179c_6665e63a","line":58,"updated":"2021-06-18 07:25:10.000000000","message":"we already have ARP_RESPONDER table in br-tun, will it be somehow related?","commit_id":"d4138041725313573d20447f1f6c37b6690f8313"},{"author":{"_account_id":30454,"name":"Yi Yang","email":"yangyi01@inspur.com","username":"yangyi01"},"change_message_id":"575c5fbd758088e8692a00a0a8c013c3adfecfb2","unresolved":true,"context_lines":[{"line_number":55,"context_line":"1. Add 4 new tables:"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"   # local static ARP, routing table for qrouter"},{"line_number":58,"context_line":"   LOCAL_QROUTER_ARP_TABLE \u003d 101"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"   # FIP to VMIP table, local FIP ARP reply, learn MAC from FIP ARP reply"},{"line_number":61,"context_line":"   FIP_TO_VMIP_TABLE \u003d 102"}],"source_content_type":"text/x-rst","patch_set":1,"id":"495fff06_50ad135b","line":58,"in_reply_to":"3908179c_6665e63a","updated":"2021-06-18 07:43:10.000000000","message":"This ARP responder is only for local VMs, it is equivalent  to \"static ARP table\" in qrouter namespace, I believe it is different from ARP responder in br-int.","commit_id":"d4138041725313573d20447f1f6c37b6690f8313"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"0a8d5664cf75c79dd4e1270bcc36b1384c4e6887","unresolved":true,"context_lines":[{"line_number":124,"context_line":"11. Install packet_in flow in FIP_OUTPUT_TABLE"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"12. Install output flow for remote FIP in FIP_OUTPUT_TABLE"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"References"},{"line_number":129,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5e78b408_92cc68aa","line":127,"updated":"2021-06-18 07:25:10.000000000","message":"We have long standing effort to make VIPs working with dvr, see https://review.opendev.org/c/openstack/neutron/+/601336 - will same use case work with that OpenFlow based DVR?","commit_id":"d4138041725313573d20447f1f6c37b6690f8313"},{"author":{"_account_id":30454,"name":"Yi Yang","email":"yangyi01@inspur.com","username":"yangyi01"},"change_message_id":"575c5fbd758088e8692a00a0a8c013c3adfecfb2","unresolved":true,"context_lines":[{"line_number":124,"context_line":"11. Install packet_in flow in FIP_OUTPUT_TABLE"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"12. Install output flow for remote FIP in FIP_OUTPUT_TABLE"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"References"},{"line_number":129,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"86bdd93b_92586609","line":127,"in_reply_to":"5e78b408_92cc68aa","updated":"2021-06-18 07:43:10.000000000","message":"If https://review.opendev.org/c/openstack/neutron/+/601336 just changed l3 agent, we can translate this logic to openflow, I didn\u0027t realize this, I\u0027ll run allowed_pair_address test cases to check this.","commit_id":"d4138041725313573d20447f1f6c37b6690f8313"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"17375ee0ff0c6834bc3b8290c510cdc48a1790a1","unresolved":true,"context_lines":[{"line_number":8,"context_line":"Openflow-based DVR L3 Implementation"},{"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://bugs.launchpad.net/neutron/+bug/example-id"},{"line_number":12,"context_line":""},{"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"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5488d770_4cfaf6be","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":50},"updated":"2021-06-28 03:13:25.000000000","message":"https://bugs.launchpad.net/neutron/+bug/1931953","commit_id":"274ebb752147cdc4bc7518f1cd8c46e2dbfccedb"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"17375ee0ff0c6834bc3b8290c510cdc48a1790a1","unresolved":true,"context_lines":[{"line_number":17,"context_line":"namespaces and iptables, qrouter network namespace and FIP network"},{"line_number":18,"context_line":"namespace used tap interfaces which is added to OVS bridge br-int, this"},{"line_number":19,"context_line":"means more hops, worse performance, especially it is much worse for FIP"},{"line_number":20,"context_line":"and in case of OVS DPDK (Note: for tap and veth interfaces, OVS DPDK\u0027s"},{"line_number":21,"context_line":"performance is very very bad)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"a2894a01_d0e6896a","line":20,"range":{"start_line":20,"start_character":35,"end_line":20,"end_character":47},"updated":"2021-06-28 03:13:25.000000000","message":"Why not use patch port and internal port of ovs?","commit_id":"274ebb752147cdc4bc7518f1cd8c46e2dbfccedb"},{"author":{"_account_id":30454,"name":"Yi Yang","email":"yangyi01@inspur.com","username":"yangyi01"},"change_message_id":"599e0e1f69c2778f6271dc07d905cb91f776c431","unresolved":true,"context_lines":[{"line_number":17,"context_line":"namespaces and iptables, qrouter network namespace and FIP network"},{"line_number":18,"context_line":"namespace used tap interfaces which is added to OVS bridge br-int, this"},{"line_number":19,"context_line":"means more hops, worse performance, especially it is much worse for FIP"},{"line_number":20,"context_line":"and in case of OVS DPDK (Note: for tap and veth interfaces, OVS DPDK\u0027s"},{"line_number":21,"context_line":"performance is very very bad)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"cff11f40_64027357","line":20,"range":{"start_line":20,"start_character":35,"end_line":20,"end_character":47},"in_reply_to":"a2894a01_d0e6896a","updated":"2021-06-28 10:15:33.000000000","message":"patch port is only for bridge to bridge, network namespace has no way to use it. For OVS DPDK, internal port is tap port.","commit_id":"274ebb752147cdc4bc7518f1cd8c46e2dbfccedb"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"17375ee0ff0c6834bc3b8290c510cdc48a1790a1","unresolved":true,"context_lines":[{"line_number":21,"context_line":"performance is very very bad)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Proposed Change"},{"line_number":25,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"This spec proposes that neutron uses Openflow to implement L3 routing and"}],"source_content_type":"text/x-rst","patch_set":4,"id":"e0f1381f_9207823a","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":15},"updated":"2021-06-28 03:13:25.000000000","message":"What about the the agent mode \"dvr_no_external\" [1], and centralized snat?\n\nhttps://docs.openstack.org/neutron/latest/configuration/l3-agent.html#DEFAULT.agent_mode","commit_id":"274ebb752147cdc4bc7518f1cd8c46e2dbfccedb"},{"author":{"_account_id":30454,"name":"Yi Yang","email":"yangyi01@inspur.com","username":"yangyi01"},"change_message_id":"599e0e1f69c2778f6271dc07d905cb91f776c431","unresolved":true,"context_lines":[{"line_number":21,"context_line":"performance is very very bad)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Proposed Change"},{"line_number":25,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"This spec proposes that neutron uses Openflow to implement L3 routing and"}],"source_content_type":"text/x-rst","patch_set":4,"id":"6a4759ca_1401e693","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":15},"in_reply_to":"e0f1381f_9207823a","updated":"2021-06-28 10:15:33.000000000","message":"for dvr_no_external and centralized dvr_snat, l3 agent runs in network node, we can use the same way to handle it as we do in compute node for dvr, this implementation will cover these agent modes.","commit_id":"274ebb752147cdc4bc7518f1cd8c46e2dbfccedb"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"17375ee0ff0c6834bc3b8290c510cdc48a1790a1","unresolved":true,"context_lines":[{"line_number":24,"context_line":"Proposed Change"},{"line_number":25,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"This spec proposes that neutron uses Openflow to implement L3 routing and"},{"line_number":28,"context_line":"floating IP in OVS bridge br-int."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* L3 routing"},{"line_number":31,"context_line":"  - Openflow-based ARP reply for ARP requests from local VMs"}],"source_content_type":"text/x-rst","patch_set":4,"id":"4b1c113c_2e11dbf5","line":28,"range":{"start_line":27,"start_character":0,"end_line":28,"end_character":33},"updated":"2021-06-28 03:13:25.000000000","message":"The implementation of current DVR is pretty complex, it has many details, such as dvr_host_mac for the distributed gateway，ARP/GARP/ARP proxing, NAT/SNAT/DNAT, routing/policy routing, metadata proxying, L3 IPs rate limit, port forwarding and so on. Some of them can be distributed, while some of them can only be centralized.\n\nSo this spec is only for floating IP (DNAT) and east west routing in compute node? Then other features of DVR can still work with this? Or what will happen to them?","commit_id":"274ebb752147cdc4bc7518f1cd8c46e2dbfccedb"},{"author":{"_account_id":30454,"name":"Yi Yang","email":"yangyi01@inspur.com","username":"yangyi01"},"change_message_id":"599e0e1f69c2778f6271dc07d905cb91f776c431","unresolved":true,"context_lines":[{"line_number":24,"context_line":"Proposed Change"},{"line_number":25,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"This spec proposes that neutron uses Openflow to implement L3 routing and"},{"line_number":28,"context_line":"floating IP in OVS bridge br-int."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* L3 routing"},{"line_number":31,"context_line":"  - Openflow-based ARP reply for ARP requests from local VMs"}],"source_content_type":"text/x-rst","patch_set":4,"id":"2423ea61_976ebfcb","line":28,"range":{"start_line":27,"start_character":0,"end_line":28,"end_character":33},"in_reply_to":"4b1c113c_2e11dbf5","updated":"2021-06-28 10:15:33.000000000","message":"Can you provide specific spec links for them? Per my knowledge about them, metadata agent is still handled as before, namespaces are still there. FIP QoS can be handled by OVS meter action, OVN uses this. FIP port forwarding can be handled by Openflow, just it is done in network node. ARP/GARP can be handled neutron controller.","commit_id":"274ebb752147cdc4bc7518f1cd8c46e2dbfccedb"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"17375ee0ff0c6834bc3b8290c510cdc48a1790a1","unresolved":true,"context_lines":[{"line_number":27,"context_line":"This spec proposes that neutron uses Openflow to implement L3 routing and"},{"line_number":28,"context_line":"floating IP in OVS bridge br-int."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* L3 routing"},{"line_number":31,"context_line":"  - Openflow-based ARP reply for ARP requests from local VMs"},{"line_number":32,"context_line":"  - Openflow-based ICMP v4 \u0026 v6 reply for IPs of gateways in qrouter"},{"line_number":33,"context_line":"  - Openflow-based TTL decrease"},{"line_number":34,"context_line":"  - Openflow-based routing across subnets"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* floating IP"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"  - Use advanced packet_in to trigger ARP request for remote floating IP"},{"line_number":39,"context_line":"    and gateway IP of floating IP segment"},{"line_number":40,"context_line":"  - Use neutron ovs agent as SDN controller to send ARP request for remote"},{"line_number":41,"context_line":"    floating IP and gateway IP of floating IP segment"},{"line_number":42,"context_line":"  - Use learn action to build Openflow-based ARP table for floating IP segment"},{"line_number":43,"context_line":"  - Use Openflow (without conntrack/ct involved) to translate VM IP to FIP,"},{"line_number":44,"context_line":"    vice versa"},{"line_number":45,"context_line":"  - ARP reply for local FIPs (FIPs associated to local VMs)."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Note: security group/firewall_driver must use openvswitch."},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"51e33229_3e3556f7","line":45,"range":{"start_line":30,"start_character":0,"end_line":45,"end_character":60},"updated":"2021-06-28 03:13:25.000000000","message":"It\u0027s better to add ascii based topologies to elaborate the packet processing details.","commit_id":"274ebb752147cdc4bc7518f1cd8c46e2dbfccedb"},{"author":{"_account_id":30454,"name":"Yi Yang","email":"yangyi01@inspur.com","username":"yangyi01"},"change_message_id":"599e0e1f69c2778f6271dc07d905cb91f776c431","unresolved":true,"context_lines":[{"line_number":27,"context_line":"This spec proposes that neutron uses Openflow to implement L3 routing and"},{"line_number":28,"context_line":"floating IP in OVS bridge br-int."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* L3 routing"},{"line_number":31,"context_line":"  - Openflow-based ARP reply for ARP requests from local VMs"},{"line_number":32,"context_line":"  - Openflow-based ICMP v4 \u0026 v6 reply for IPs of gateways in qrouter"},{"line_number":33,"context_line":"  - Openflow-based TTL decrease"},{"line_number":34,"context_line":"  - Openflow-based routing across subnets"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* floating IP"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"  - Use advanced packet_in to trigger ARP request for remote floating IP"},{"line_number":39,"context_line":"    and gateway IP of floating IP segment"},{"line_number":40,"context_line":"  - Use neutron ovs agent as SDN controller to send ARP request for remote"},{"line_number":41,"context_line":"    floating IP and gateway IP of floating IP segment"},{"line_number":42,"context_line":"  - Use learn action to build Openflow-based ARP table for floating IP segment"},{"line_number":43,"context_line":"  - Use Openflow (without conntrack/ct involved) to translate VM IP to FIP,"},{"line_number":44,"context_line":"    vice versa"},{"line_number":45,"context_line":"  - ARP reply for local FIPs (FIPs associated to local VMs)."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Note: security group/firewall_driver must use openvswitch."},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"f5e1c174_b602dff2","line":45,"range":{"start_line":30,"start_character":0,"end_line":45,"end_character":60},"in_reply_to":"51e33229_3e3556f7","updated":"2021-06-28 10:15:33.000000000","message":"Good idea, I\u0027ll add them.","commit_id":"274ebb752147cdc4bc7518f1cd8c46e2dbfccedb"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"17375ee0ff0c6834bc3b8290c510cdc48a1790a1","unresolved":true,"context_lines":[{"line_number":128,"context_line":"12. Install output flow for remote FIP in FIP_OUTPUT_TABLE"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Openflow installation for FIP"},{"line_number":132,"context_line":"-----------------------------"},{"line_number":133,"context_line":"1. Binding FIP to VM operation will call"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"8ebe1e48_16943834","line":131,"range":{"start_line":131,"start_character":0,"end_line":131,"end_character":29},"updated":"2021-06-28 03:13:25.000000000","message":"Which agent will execute the folloing actions? If it is OVS agent, maybe this can be implemented as an new OVS agent extension. When people wants to enable this, just set:\n\n[agent]\nextensions \u003d dvr","commit_id":"274ebb752147cdc4bc7518f1cd8c46e2dbfccedb"},{"author":{"_account_id":30454,"name":"Yi Yang","email":"yangyi01@inspur.com","username":"yangyi01"},"change_message_id":"599e0e1f69c2778f6271dc07d905cb91f776c431","unresolved":true,"context_lines":[{"line_number":128,"context_line":"12. Install output flow for remote FIP in FIP_OUTPUT_TABLE"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Openflow installation for FIP"},{"line_number":132,"context_line":"-----------------------------"},{"line_number":133,"context_line":"1. Binding FIP to VM operation will call"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"b8d5005b_2e1561ce","line":131,"range":{"start_line":131,"start_character":0,"end_line":131,"end_character":29},"in_reply_to":"8ebe1e48_16943834","updated":"2021-06-28 10:15:33.000000000","message":"Good idea, let me check if we can handle it better.","commit_id":"274ebb752147cdc4bc7518f1cd8c46e2dbfccedb"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"17375ee0ff0c6834bc3b8290c510cdc48a1790a1","unresolved":true,"context_lines":[{"line_number":180,"context_line":"   Note: in source file"},{"line_number":181,"context_line":"     neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/br_int.py"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"Openflow installation for qrouter"},{"line_number":184,"context_line":"---------------------------------"},{"line_number":185,"context_line":"1. Install default drop flows for LOCAL_QROUTER_REPLY_TABLE,"},{"line_number":186,"context_line":"   LOCAL_QROUTER_ARP_TABLE, FIP_TO_VMIP_TABLE and LOCAL_FIP_ARP_TABLE in"}],"source_content_type":"text/x-rst","patch_set":4,"id":"31cdbb6d_48a11ac0","line":183,"range":{"start_line":183,"start_character":0,"end_line":183,"end_character":33},"updated":"2021-06-28 03:13:25.000000000","message":"Again, which agent will run this part of works?","commit_id":"274ebb752147cdc4bc7518f1cd8c46e2dbfccedb"},{"author":{"_account_id":30454,"name":"Yi Yang","email":"yangyi01@inspur.com","username":"yangyi01"},"change_message_id":"599e0e1f69c2778f6271dc07d905cb91f776c431","unresolved":true,"context_lines":[{"line_number":180,"context_line":"   Note: in source file"},{"line_number":181,"context_line":"     neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/br_int.py"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"Openflow installation for qrouter"},{"line_number":184,"context_line":"---------------------------------"},{"line_number":185,"context_line":"1. Install default drop flows for LOCAL_QROUTER_REPLY_TABLE,"},{"line_number":186,"context_line":"   LOCAL_QROUTER_ARP_TABLE, FIP_TO_VMIP_TABLE and LOCAL_FIP_ARP_TABLE in"}],"source_content_type":"text/x-rst","patch_set":4,"id":"b07499b5_dfe65d00","line":183,"range":{"start_line":183,"start_character":0,"end_line":183,"end_character":33},"in_reply_to":"31cdbb6d_48a11ac0","updated":"2021-06-28 10:15:33.000000000","message":"Currently, it is called by ovs agent.","commit_id":"274ebb752147cdc4bc7518f1cd8c46e2dbfccedb"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"17375ee0ff0c6834bc3b8290c510cdc48a1790a1","unresolved":true,"context_lines":[{"line_number":256,"context_line":"     neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"Openflow pipeline for egress FIP"},{"line_number":260,"context_line":"--------------------------------"},{"line_number":261,"context_line":"1. VM sends ARP request for qrouter gateway IP."},{"line_number":262,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"dfb354a5_fce412cb","line":259,"range":{"start_line":259,"start_character":0,"end_line":259,"end_character":32},"updated":"2021-06-28 03:13:25.000000000","message":"Based on my comments on Line 45, ascii based topologies will help to understand the packet processing pipeline.","commit_id":"274ebb752147cdc4bc7518f1cd8c46e2dbfccedb"},{"author":{"_account_id":30454,"name":"Yi Yang","email":"yangyi01@inspur.com","username":"yangyi01"},"change_message_id":"599e0e1f69c2778f6271dc07d905cb91f776c431","unresolved":true,"context_lines":[{"line_number":256,"context_line":"     neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"Openflow pipeline for egress FIP"},{"line_number":260,"context_line":"--------------------------------"},{"line_number":261,"context_line":"1. VM sends ARP request for qrouter gateway IP."},{"line_number":262,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"c5eed679_46b5411b","line":259,"range":{"start_line":259,"start_character":0,"end_line":259,"end_character":32},"in_reply_to":"dfb354a5_fce412cb","updated":"2021-06-28 10:15:33.000000000","message":"yes, I\u0027ll add them.","commit_id":"274ebb752147cdc4bc7518f1cd8c46e2dbfccedb"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"17375ee0ff0c6834bc3b8290c510cdc48a1790a1","unresolved":true,"context_lines":[{"line_number":295,"context_line":"flow in LOCAL_FIP_ARP_TABLE, so next packets will be handled by flow in table"},{"line_number":296,"context_line":"LOCAL_FIP_ARP_TABLE and be set correct dl_dst."},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"Openflow pipeline for ingress FIP"},{"line_number":299,"context_line":"---------------------------------"},{"line_number":300,"context_line":"1. Original flows will steer the traffic from int-br-floating to table"},{"line_number":301,"context_line":"   TRANSIENT_TABLE."}],"source_content_type":"text/x-rst","patch_set":4,"id":"e118c3d5_1b74c5d6","line":298,"range":{"start_line":298,"start_character":0,"end_line":298,"end_character":33},"updated":"2021-06-28 03:13:25.000000000","message":"ditto","commit_id":"274ebb752147cdc4bc7518f1cd8c46e2dbfccedb"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"17375ee0ff0c6834bc3b8290c510cdc48a1790a1","unresolved":true,"context_lines":[{"line_number":313,"context_line":""},{"line_number":314,"context_line":"5. Original flows will steer it to final VM."},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"Openflow pipeline for egress VM L3 routing"},{"line_number":317,"context_line":"------------------------------------------"},{"line_number":318,"context_line":"1. VM sends ARP request for qrouter gateway IP."},{"line_number":319,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"4b23e4b7_7a6f52d3","line":316,"range":{"start_line":316,"start_character":0,"end_line":316,"end_character":42},"updated":"2021-06-28 03:13:25.000000000","message":"ditto","commit_id":"274ebb752147cdc4bc7518f1cd8c46e2dbfccedb"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"17375ee0ff0c6834bc3b8290c510cdc48a1790a1","unresolved":true,"context_lines":[{"line_number":336,"context_line":"   destination VM."},{"line_number":337,"context_line":""},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"Openflow pipeline for inress VM L3 routing"},{"line_number":340,"context_line":"------------------------------------------"},{"line_number":341,"context_line":"Note: It has been routed on send side, so on target compute node, it is actually"},{"line_number":342,"context_line":"L2 switching, Openflow pipeline is still as-is, i.e. it is same as before."},{"line_number":343,"context_line":""},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":4,"id":"0c39bcf8_ff53de99","line":342,"range":{"start_line":339,"start_character":0,"end_line":342,"end_character":74},"updated":"2021-06-28 03:13:25.000000000","message":"I did not see any detail about dvr_host_mac in this spec. For current implementation of DVR, these is DVR host mac to indicate where the distributed gateway resides. The dvr_host_mac will still exist? If yes, the implementation here will be affected?","commit_id":"274ebb752147cdc4bc7518f1cd8c46e2dbfccedb"},{"author":{"_account_id":30454,"name":"Yi Yang","email":"yangyi01@inspur.com","username":"yangyi01"},"change_message_id":"599e0e1f69c2778f6271dc07d905cb91f776c431","unresolved":true,"context_lines":[{"line_number":336,"context_line":"   destination VM."},{"line_number":337,"context_line":""},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"Openflow pipeline for inress VM L3 routing"},{"line_number":340,"context_line":"------------------------------------------"},{"line_number":341,"context_line":"Note: It has been routed on send side, so on target compute node, it is actually"},{"line_number":342,"context_line":"L2 switching, Openflow pipeline is still as-is, i.e. it is same as before."},{"line_number":343,"context_line":""},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":4,"id":"f1142c27_6fd95706","line":342,"range":{"start_line":339,"start_character":0,"end_line":342,"end_character":74},"in_reply_to":"0c39bcf8_ff53de99","updated":"2021-06-28 10:15:33.000000000","message":"Is there any spec for dvr_host_mac? Can you help provide spec link? Let me check it further and feedback you, I don\u0027t know about this.","commit_id":"274ebb752147cdc4bc7518f1cd8c46e2dbfccedb"},{"author":{"_account_id":30454,"name":"Yi Yang","email":"yangyi01@inspur.com","username":"yangyi01"},"change_message_id":"821118fe86152e808fb5c3b85a573f3ff0d4e2c0","unresolved":true,"context_lines":[{"line_number":336,"context_line":"   destination VM."},{"line_number":337,"context_line":""},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"Openflow pipeline for inress VM L3 routing"},{"line_number":340,"context_line":"------------------------------------------"},{"line_number":341,"context_line":"Note: It has been routed on send side, so on target compute node, it is actually"},{"line_number":342,"context_line":"L2 switching, Openflow pipeline is still as-is, i.e. it is same as before."},{"line_number":343,"context_line":""},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":4,"id":"95e697b6_e78f6e6f","line":342,"range":{"start_line":339,"start_character":0,"end_line":342,"end_character":74},"in_reply_to":"c393742a_5e53c604","updated":"2021-08-18 09:55:58.000000000","message":"Thank for reply, it works as before, this implementation has no need to change it.","commit_id":"274ebb752147cdc4bc7518f1cd8c46e2dbfccedb"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"2cb0803199b72af16a1c2755f54128afc5fefc7d","unresolved":true,"context_lines":[{"line_number":336,"context_line":"   destination VM."},{"line_number":337,"context_line":""},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"Openflow pipeline for inress VM L3 routing"},{"line_number":340,"context_line":"------------------------------------------"},{"line_number":341,"context_line":"Note: It has been routed on send side, so on target compute node, it is actually"},{"line_number":342,"context_line":"L2 switching, Openflow pipeline is still as-is, i.e. it is same as before."},{"line_number":343,"context_line":""},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":4,"id":"c393742a_5e53c604","line":342,"range":{"start_line":339,"start_character":0,"end_line":342,"end_character":74},"in_reply_to":"f1142c27_6fd95706","updated":"2021-08-18 09:11:38.000000000","message":"Unfortunately, there is no such doc. Here are some code search which have some clues.\n\nhttps://codesearch.openstack.org/?q\u003ddvr_host_mac\u0026i\u003dnope\u0026literal\u003dnope\u0026files\u003d\u0026excludeFiles\u003d\u0026repos\u003d\nhttps://codesearch.openstack.org/?q\u003ddvr_mac_address\u0026i\u003dnope\u0026literal\u003dnope\u0026files\u003d\u0026excludeFiles\u003d\u0026repos\u003d\n\ndvr_host_mac is used to avoid making physical devices learnt the one same gateway MAC is placed from multiple ports.","commit_id":"274ebb752147cdc4bc7518f1cd8c46e2dbfccedb"}]}
