)]}'
{"doc/source/specs/unified_ingress_dnat_and_flat_networks.rst":[{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"02f619b4313f17a2bb5e8cee7a2b374a8d0558ef","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Problem Description"},{"line_number":15,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"When using flat network (e.g. a port on the public network), we add a rule from"},{"line_number":18,"context_line":"INGRESS_CLASSIFICATION_DISPATCH_TABLE(0) to INGRESS_DESTINATION_PORT_LOOKUP_TABLE(7)"},{"line_number":19,"context_line":"when there\u0027s a packet not tagged with vlan (and does not match other egress rules)"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_075c2eec","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":23},"updated":"2016-10-31 02:27:43.000000000","message":"Will the same problem exist for vlan network? for example, vlan network as external network, creating floating ip in the vlan network, and create vm in the same vlan network at the same vlan network.","commit_id":"921d8c6deac050a2efef130e10ee190b572395c7"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"847935fd0831a4026e3b764ae068e7f615b15df1","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Problem Description"},{"line_number":15,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"When using flat network (e.g. a port on the public network), we add a rule from"},{"line_number":18,"context_line":"INGRESS_CLASSIFICATION_DISPATCH_TABLE(0) to INGRESS_DESTINATION_PORT_LOOKUP_TABLE(7)"},{"line_number":19,"context_line":"when there\u0027s a packet not tagged with vlan (and does not match other egress rules)"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_280d7e37","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":23},"in_reply_to":"ba5da102_075c2eec","updated":"2016-10-31 11:36:47.000000000","message":"I think you\u0027re right though I don\u0027t think dragonflow supports floating IPs on external VLAN networks...","commit_id":"921d8c6deac050a2efef130e10ee190b572395c7"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"02f619b4313f17a2bb5e8cee7a2b374a8d0558ef","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Option 1"},{"line_number":42,"context_line":"~~~~~~~~"},{"line_number":43,"context_line":"Route all external traffic to INGRESS_DESTINATION_PORT_LOOKUP_TABLE(7) "},{"line_number":44,"context_line":"(incl. DNAT) and install DNAT flows in this table, with this change we might"},{"line_number":45,"context_line":"want to rename the table to better reflect its purpose."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_07ceeeb3","line":43,"range":{"start_line":43,"start_character":70,"end_line":43,"end_character":71},"updated":"2016-10-31 02:27:43.000000000","message":"extra space","commit_id":"921d8c6deac050a2efef130e10ee190b572395c7"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"847935fd0831a4026e3b764ae068e7f615b15df1","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Option 1"},{"line_number":42,"context_line":"~~~~~~~~"},{"line_number":43,"context_line":"Route all external traffic to INGRESS_DESTINATION_PORT_LOOKUP_TABLE(7) "},{"line_number":44,"context_line":"(incl. DNAT) and install DNAT flows in this table, with this change we might"},{"line_number":45,"context_line":"want to rename the table to better reflect its purpose."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_9e45e0b4","line":43,"range":{"start_line":43,"start_character":70,"end_line":43,"end_character":71},"in_reply_to":"ba5da102_07ceeeb3","updated":"2016-10-31 11:36:47.000000000","message":"will remove","commit_id":"921d8c6deac050a2efef130e10ee190b572395c7"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"02f619b4313f17a2bb5e8cee7a2b374a8d0558ef","unresolved":false,"context_lines":[{"line_number":44,"context_line":"(incl. DNAT) and install DNAT flows in this table, with this change we might"},{"line_number":45,"context_line":"want to rename the table to better reflect its purpose."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"   +---------+                  +------------+"},{"line_number":48,"context_line":"   | Table 0 |                  |  Table 7   |"},{"line_number":49,"context_line":"   |         | vlan\u003dX/tun\u003dY     |            |"},{"line_number":50,"context_line":"   |         | ----------------\u003e| DNAT flows |"},{"line_number":51,"context_line":"   |         |                  |            |"},{"line_number":52,"context_line":"   |         | in_port\u003dbr-ex    | Dest port  |"},{"line_number":53,"context_line":"   |         | ----------------\u003e| lookup     |"},{"line_number":54,"context_line":"   |         |                  |            |"},{"line_number":55,"context_line":"   +---------+                  +------------+"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Option 2"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_87ee7eb2","line":55,"range":{"start_line":47,"start_character":0,"end_line":55,"end_character":46},"updated":"2016-10-31 02:27:43.000000000","message":"I would vote for this option, but in another way.\n1) remove the in_port\u003dbr-ex flow in table 0, only match vlan id in table 0, and forward all the request to table 7\n2) keep the name of table 7\n3) add a jump flow in table 7, with lower priority than dest port lookup. The jump flow will jump to table 15 for ingress dnat.\n\nThe table 7 will look like following:\n\ntable\u003d7, priority\u003d200,metadata\u003d0x1,dl_dst\u003dfa:16:3e:12:77:2b actions\u003dload:0x5-\u003eNXM_NX_REG7[],resubmit(,72)\ntable\u003d7, priority\u003d200,metadata\u003d0x4,dl_dst\u003d01:00:00:00:00:00/01:00:00:00:00:00 actions\u003dload:0x5-\u003eNXM_NX_REG7[],resubmit(,72)\n\ntable\u003d7, priority\u003d50,metadata\u003d0x1,resubmit(,15)\n\n\nWhere the metadata\u003d0x1 matches the external flat network.","commit_id":"921d8c6deac050a2efef130e10ee190b572395c7"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"075fd30518e3ab53dfb47112670325fb1e3dd2d2","unresolved":false,"context_lines":[{"line_number":44,"context_line":"(incl. DNAT) and install DNAT flows in this table, with this change we might"},{"line_number":45,"context_line":"want to rename the table to better reflect its purpose."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"   +---------+                  +------------+"},{"line_number":48,"context_line":"   | Table 0 |                  |  Table 7   |"},{"line_number":49,"context_line":"   |         | vlan\u003dX/tun\u003dY     |            |"},{"line_number":50,"context_line":"   |         | ----------------\u003e| DNAT flows |"},{"line_number":51,"context_line":"   |         |                  |            |"},{"line_number":52,"context_line":"   |         | in_port\u003dbr-ex    | Dest port  |"},{"line_number":53,"context_line":"   |         | ----------------\u003e| lookup     |"},{"line_number":54,"context_line":"   |         |                  |            |"},{"line_number":55,"context_line":"   +---------+                  +------------+"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Option 2"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_e239de42","line":55,"range":{"start_line":47,"start_character":0,"end_line":55,"end_character":46},"in_reply_to":"ba5da102_5e50a85e","updated":"2016-10-31 13:07:52.000000000","message":"yeah, you are correct about the arp. Let me think about it a bit more...","commit_id":"921d8c6deac050a2efef130e10ee190b572395c7"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"1467f7ee8769775dd6ec9c856a90f154e8216b4a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"(incl. DNAT) and install DNAT flows in this table, with this change we might"},{"line_number":45,"context_line":"want to rename the table to better reflect its purpose."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"   +---------+                  +------------+"},{"line_number":48,"context_line":"   | Table 0 |                  |  Table 7   |"},{"line_number":49,"context_line":"   |         | vlan\u003dX/tun\u003dY     |            |"},{"line_number":50,"context_line":"   |         | ----------------\u003e| DNAT flows |"},{"line_number":51,"context_line":"   |         |                  |            |"},{"line_number":52,"context_line":"   |         | in_port\u003dbr-ex    | Dest port  |"},{"line_number":53,"context_line":"   |         | ----------------\u003e| lookup     |"},{"line_number":54,"context_line":"   |         |                  |            |"},{"line_number":55,"context_line":"   +---------+                  +------------+"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Option 2"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_187e2cae","line":55,"range":{"start_line":47,"start_character":0,"end_line":55,"end_character":46},"in_reply_to":"ba5da102_7513b166","updated":"2016-11-01 08:17:31.000000000","message":"I like this solution, I think it will work...\nI\u0027ll draw up a patch later on today.","commit_id":"921d8c6deac050a2efef130e10ee190b572395c7"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"847935fd0831a4026e3b764ae068e7f615b15df1","unresolved":false,"context_lines":[{"line_number":44,"context_line":"(incl. DNAT) and install DNAT flows in this table, with this change we might"},{"line_number":45,"context_line":"want to rename the table to better reflect its purpose."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"   +---------+                  +------------+"},{"line_number":48,"context_line":"   | Table 0 |                  |  Table 7   |"},{"line_number":49,"context_line":"   |         | vlan\u003dX/tun\u003dY     |            |"},{"line_number":50,"context_line":"   |         | ----------------\u003e| DNAT flows |"},{"line_number":51,"context_line":"   |         |                  |            |"},{"line_number":52,"context_line":"   |         | in_port\u003dbr-ex    | Dest port  |"},{"line_number":53,"context_line":"   |         | ----------------\u003e| lookup     |"},{"line_number":54,"context_line":"   |         |                  |            |"},{"line_number":55,"context_line":"   +---------+                  +------------+"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Option 2"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_5e50a85e","line":55,"range":{"start_line":47,"start_character":0,"end_line":55,"end_character":46},"in_reply_to":"ba5da102_87ee7eb2","updated":"2016-10-31 11:36:47.000000000","message":"There is a slight issue with this, multicast flow will catch all broadcast traffic (metadata will match if we\u0027re coming from table 0 by the first flow from above) and we won\u0027t be able to arp the floating ip addresses.","commit_id":"921d8c6deac050a2efef130e10ee190b572395c7"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"8c553339db94324eb5c7e6b82d0f0585b7557335","unresolved":false,"context_lines":[{"line_number":44,"context_line":"(incl. DNAT) and install DNAT flows in this table, with this change we might"},{"line_number":45,"context_line":"want to rename the table to better reflect its purpose."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"   +---------+                  +------------+"},{"line_number":48,"context_line":"   | Table 0 |                  |  Table 7   |"},{"line_number":49,"context_line":"   |         | vlan\u003dX/tun\u003dY     |            |"},{"line_number":50,"context_line":"   |         | ----------------\u003e| DNAT flows |"},{"line_number":51,"context_line":"   |         |                  |            |"},{"line_number":52,"context_line":"   |         | in_port\u003dbr-ex    | Dest port  |"},{"line_number":53,"context_line":"   |         | ----------------\u003e| lookup     |"},{"line_number":54,"context_line":"   |         |                  |            |"},{"line_number":55,"context_line":"   +---------+                  +------------+"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Option 2"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_e59d685a","line":55,"range":{"start_line":47,"start_character":0,"end_line":55,"end_character":46},"in_reply_to":"ba5da102_e239de42","updated":"2016-10-31 13:30:09.000000000","message":"I\u0027ve managed to get the whole think working by merging the tables, and setting prio of DNAT rules (arp responders and ip/mac change) to be above the multicast rules, but merging the tables does not seem like a nice alternative.","commit_id":"921d8c6deac050a2efef130e10ee190b572395c7"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"466f0eca8a98d5e49f8cac73f756fe3c713ca76f","unresolved":false,"context_lines":[{"line_number":44,"context_line":"(incl. DNAT) and install DNAT flows in this table, with this change we might"},{"line_number":45,"context_line":"want to rename the table to better reflect its purpose."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"   +---------+                  +------------+"},{"line_number":48,"context_line":"   | Table 0 |                  |  Table 7   |"},{"line_number":49,"context_line":"   |         | vlan\u003dX/tun\u003dY     |            |"},{"line_number":50,"context_line":"   |         | ----------------\u003e| DNAT flows |"},{"line_number":51,"context_line":"   |         |                  |            |"},{"line_number":52,"context_line":"   |         | in_port\u003dbr-ex    | Dest port  |"},{"line_number":53,"context_line":"   |         | ----------------\u003e| lookup     |"},{"line_number":54,"context_line":"   |         |                  |            |"},{"line_number":55,"context_line":"   +---------+                  +------------+"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Option 2"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5da102_7513b166","line":55,"range":{"start_line":47,"start_character":0,"end_line":55,"end_character":46},"in_reply_to":"ba5da102_e59d685a","updated":"2016-11-01 07:33:48.000000000","message":"The arp issue will exist only when the floatingip and vm ip are allocated from one provider network, right?\n\nThe problem here is that we can\u0027t tell if the packet from provider network is for floatingip or for vm ip.\n\nTable 7 has already been added flows to match the dst_mac of vm. So, the problem here is that how can we tell if the broadcast from provider network is for floatingip or for vm ip.\n\nI think we can\u0027t tell apart the packet. However, what if we also send the broadcast packet of external network to table 15(ingress nat table). I think that will solve the problem. The table 7 will looks like below. I feel like this might be a feasible solution, as for external network, it makes sense to send broadcast packet to floatingip table. What do you think?\n\ntable\u003d7, priority\u003d200,metadata\u003d0x1,dl_dst\u003dfa:16:3e:12:77:2b actions\u003dload:0x5-\u003eNXM_NX_REG7[],resubmit(,72)\ntable\u003d7, priority\u003d200,metadata\u003d0x1,dl_dst\u003d01:00:00:00:00:00/01:00:00:00:00:00 actions\u003dresubmit(,15),load:0x5-\u003eNXM_NX_REG7[],resubmit(,72)\ntable\u003d7, priority\u003d50,metadata\u003d0x1,resubmit(,15)","commit_id":"921d8c6deac050a2efef130e10ee190b572395c7"}]}
