)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"25eaa0c606b345d98d0d9112f03d2dfa1c8f8fb8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"fc26d7dc_08e671c5","updated":"2023-05-10 13:07:01.000000000","message":"Makes overall sense to me.","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"38695637a80011e9895a6d1c37b4d456c90b98d6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5c7c5d1a_762c922d","updated":"2023-05-16 11:24:22.000000000","message":"just some questions and nits","commit_id":"b7be3d900187080e299a6105b5aac1fd40942fb7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"cdc1e4802f844b76f7e6d03e9db64f7bcf2c4c1b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"0ae9763e_d9967057","updated":"2023-05-15 18:30:12.000000000","message":"thanks","commit_id":"b7be3d900187080e299a6105b5aac1fd40942fb7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"9d7ffbf416aa9044d29ecaa707986b5502bf324f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3c4ddc53_8239aa6e","updated":"2023-05-26 21:38:14.000000000","message":"Looks very good. Thank you. I just made some comments to clarify a few points","commit_id":"ae61011b71eacc53edfb6cec12b5508800279205"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"d82579282293ee60d329ab03c1f622350c315b32","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"76d3ebb0_6023b3a6","updated":"2023-05-30 18:23:31.000000000","message":"Thanks for the latest changes and tweaks!","commit_id":"de2ee265faa6bac9d8ae168293dd8cc47c8a9ccc"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"2db351bfb61a76795edf3c060a93d942584ccff5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"7cf4ce58_768fe64d","updated":"2023-06-01 12:07:48.000000000","message":"We talked about always using erspan with its version specified (e.g. mirror_type\u003derspan-v1). This change was not properly made in all parts of the spec. Commented about the missing parts.\n\nOtherwise this spec seems complete to me. Thanks!","commit_id":"de2ee265faa6bac9d8ae168293dd8cc47c8a9ccc"}],"specs/2023.2/erspan-for-tap-as-a-service.rst":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"765f4cf311b73d5608b765ec2d6a9839838f44a0","unresolved":true,"context_lines":[{"line_number":357,"context_line":""},{"line_number":358,"context_line":"Different tunnel_id will be used for the 2 traffic directions, for details"},{"line_number":359,"context_line":"see `REST API impact`_ ."},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"OVS driver changes"},{"line_number":362,"context_line":"------------------"},{"line_number":363,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"dff29800_37c3725c","line":360,"updated":"2023-05-03 13:28:08.000000000","message":"I still miss the part how the tunnel is created, and what will be the source IP of it. In my env it is the first interface\u0027s IP, but I doubt that this is something users can count on.\nBence (rubasov) suggested to have some kind of cfg option for this, but at the moment I don\u0027t know how to force OVN or OVS to use specific address.\nFor OVN it is more difficult as OVN always creates the OVS mirror port on br-int.","commit_id":"963071c2469948e3e045b2c50f9c3dfec9bc70d0"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"b5eed1bdc6ffa311ed24f6eab7d27ac4cbbe0d69","unresolved":true,"context_lines":[{"line_number":357,"context_line":""},{"line_number":358,"context_line":"Different tunnel_id will be used for the 2 traffic directions, for details"},{"line_number":359,"context_line":"see `REST API impact`_ ."},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"OVS driver changes"},{"line_number":362,"context_line":"------------------"},{"line_number":363,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"b921967e_c702fa6f","line":360,"in_reply_to":"dff29800_37c3725c","updated":"2023-05-23 09:31:34.000000000","message":"When we have the answer to this, I believe this spec is close to complete.","commit_id":"963071c2469948e3e045b2c50f9c3dfec9bc70d0"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"25eaa0c606b345d98d0d9112f03d2dfa1c8f8fb8","unresolved":true,"context_lines":[{"line_number":11,"context_line":"https://bugs.launchpad.net/neutron/+bug/2015471"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Mirroring is a widely used tool to analyse traffic of switch ports."},{"line_number":14,"context_line":"Tap-as-a-service project was created to allow admins to mirror traffic"},{"line_number":15,"context_line":"of one Neutron port to another Neutron port."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Mirroring can also be done by encapsulating the traffic into a tunnel, like"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b84ffdad_f4d0981a","line":14,"updated":"2023-05-10 13:07:01.000000000","message":"nit: The tap-as-a-service project...","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"cdc1e4802f844b76f7e6d03e9db64f7bcf2c4c1b","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://bugs.launchpad.net/neutron/+bug/2015471"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Mirroring is a widely used tool to analyse traffic of switch ports."},{"line_number":14,"context_line":"Tap-as-a-service project was created to allow admins to mirror traffic"},{"line_number":15,"context_line":"of one Neutron port to another Neutron port."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Mirroring can also be done by encapsulating the traffic into a tunnel, like"}],"source_content_type":"text/x-rst","patch_set":2,"id":"026eb342_463e4ce6","line":14,"in_reply_to":"b84ffdad_f4d0981a","updated":"2023-05-15 18:30:12.000000000","message":"Done","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"25eaa0c606b345d98d0d9112f03d2dfa1c8f8fb8","unresolved":true,"context_lines":[{"line_number":156,"context_line":"            \"port_id\": \"1a1a5a96-e8cb-11ed-9678-9b663820b519\","},{"line_number":157,"context_line":"            \"tunnel_id\": \"1\","},{"line_number":158,"context_line":"            \"remote_ip\": \"172.31.1.1\","},{"line_number":159,"context_line":"            \"mirror_type\": \"erspan\"|\"gre\""},{"line_number":160,"context_line":"        }"},{"line_number":161,"context_line":"    }"},{"line_number":162,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"b9c75df9_5f17cbfd","line":159,"range":{"start_line":159,"start_character":28,"end_line":159,"end_character":34},"updated":"2023-05-10 13:07:01.000000000","message":"If we ever wanted to support a different erspan version it would better to be explicit here and say \"erspan-v1\".","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"cdc1e4802f844b76f7e6d03e9db64f7bcf2c4c1b","unresolved":true,"context_lines":[{"line_number":156,"context_line":"            \"port_id\": \"1a1a5a96-e8cb-11ed-9678-9b663820b519\","},{"line_number":157,"context_line":"            \"tunnel_id\": \"1\","},{"line_number":158,"context_line":"            \"remote_ip\": \"172.31.1.1\","},{"line_number":159,"context_line":"            \"mirror_type\": \"erspan\"|\"gre\""},{"line_number":160,"context_line":"        }"},{"line_number":161,"context_line":"    }"},{"line_number":162,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"aaa8313f_56a021b4","line":159,"range":{"start_line":159,"start_character":28,"end_line":159,"end_character":34},"in_reply_to":"b9c75df9_5f17cbfd","updated":"2023-05-15 18:30:12.000000000","message":"good idea, thanks","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"25eaa0c606b345d98d0d9112f03d2dfa1c8f8fb8","unresolved":true,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":".. note::"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    Only VM ports can be used as the source or mirroring."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"* ``remote_ip``: The IP of the remote end of the tunnel."},{"line_number":170,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"8e300937_b61c380f","line":167,"range":{"start_line":167,"start_character":44,"end_line":167,"end_character":46},"updated":"2023-05-10 13:07:01.000000000","message":"nit: of","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"cdc1e4802f844b76f7e6d03e9db64f7bcf2c4c1b","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":".. note::"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    Only VM ports can be used as the source or mirroring."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"* ``remote_ip``: The IP of the remote end of the tunnel."},{"line_number":170,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"213e5964_624b8c62","line":167,"range":{"start_line":167,"start_character":44,"end_line":167,"end_character":46},"in_reply_to":"8e300937_b61c380f","updated":"2023-05-15 18:30:12.000000000","message":"Done","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"25eaa0c606b345d98d0d9112f03d2dfa1c8f8fb8","unresolved":true,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    This API proposal keeps the current taas API\u0027s N-1 relationship between"},{"line_number":183,"context_line":"    source and destination. Multiple source ports\u0027 traffic can be mirrored to"},{"line_number":184,"context_line":"    one destination IP."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"* ``mirror_type`` field is to select between ERSPAN and GRE."},{"line_number":187,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"c6aaee74_f5008623","line":184,"updated":"2023-05-10 13:07:01.000000000","message":"What about the destination as a remote_ip-tunnel_id pair? Can multiple tap_mirrors use the same remote_ip-tunnel_id pair?\n\nBased on the comment in L213 I would suggest not allowing that.","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"cdc1e4802f844b76f7e6d03e9db64f7bcf2c4c1b","unresolved":true,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    This API proposal keeps the current taas API\u0027s N-1 relationship between"},{"line_number":183,"context_line":"    source and destination. Multiple source ports\u0027 traffic can be mirrored to"},{"line_number":184,"context_line":"    one destination IP."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"* ``mirror_type`` field is to select between ERSPAN and GRE."},{"line_number":187,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"2365d685_f8ebda47","line":184,"in_reply_to":"c6aaee74_f5008623","updated":"2023-05-15 18:30:12.000000000","message":"agree, I changeed the proposed API to use dict of direction: tun_id.","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"25eaa0c606b345d98d0d9112f03d2dfa1c8f8fb8","unresolved":true,"context_lines":[{"line_number":182,"context_line":"    This API proposal keeps the current taas API\u0027s N-1 relationship between"},{"line_number":183,"context_line":"    source and destination. Multiple source ports\u0027 traffic can be mirrored to"},{"line_number":184,"context_line":"    one destination IP."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"* ``mirror_type`` field is to select between ERSPAN and GRE."},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"* ``direction`` is the direction of the traffic to be mirrored on the port."}],"source_content_type":"text/x-rst","patch_set":2,"id":"37b8d25c_541b9813","line":185,"updated":"2023-05-10 13:07:01.000000000","message":"Also do we allow multiple tap_mirrors with the same port_id?","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"cdc1e4802f844b76f7e6d03e9db64f7bcf2c4c1b","unresolved":true,"context_lines":[{"line_number":182,"context_line":"    This API proposal keeps the current taas API\u0027s N-1 relationship between"},{"line_number":183,"context_line":"    source and destination. Multiple source ports\u0027 traffic can be mirrored to"},{"line_number":184,"context_line":"    one destination IP."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"* ``mirror_type`` field is to select between ERSPAN and GRE."},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"* ``direction`` is the direction of the traffic to be mirrored on the port."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1ae35ce5_24423ddc","line":185,"in_reply_to":"37b8d25c_541b9813","updated":"2023-05-15 18:30:12.000000000","message":"no, I added that line PS3 l163.","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"25eaa0c606b345d98d0d9112f03d2dfa1c8f8fb8","unresolved":true,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":".. warning::"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    It is not possible to create tunnel (GRE or ERSPAN) with the same"},{"line_number":205,"context_line":"    tunnel_id to the same remote_ip from the same portwith OVN. Due to this"},{"line_number":206,"context_line":"    if the user chooses BOTH for direction 2 tunnels must be created with with"},{"line_number":207,"context_line":"    different tunnel_id."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    This is something to make visible for the user on the API, when she/he"},{"line_number":210,"context_line":"    GET the tap_mirror, show that there are 2 tunnel_ids used for this"},{"line_number":211,"context_line":"    specific tap_mirror. This also means that the receiving side of the"},{"line_number":212,"context_line":"    mirror must be prepared that the egress and ingress direction will be"},{"line_number":213,"context_line":"    encapsulated to tunnels with different tunnel_id."},{"line_number":214,"context_line":""},{"line_number":215,"context_line":".. note::"},{"line_number":216,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"0f5a6f9e_e0fbe118","line":213,"range":{"start_line":204,"start_character":4,"end_line":213,"end_character":53},"updated":"2023-05-10 13:07:01.000000000","message":"This is problematic for multiple reasons:\n\n1) the behavior seems to be backend specific\n2) the user cannot control the 2nd tunnel_id\n\nIf we must use two tunnel_ids, then let\u0027s come up with a data structure that enables the user to specify both.\n\nAn example:\n\n    {\"tap_mirror\": {\n            \"name\": \"mirror-traffic-of-server-a0\",\n            \"description\": \"Mirror the traffic from server-a0\",\n            \"directions\": {\"IN\": 1, \"OUT\": 2}\n             ...\n\nor another:\n\n    {\"tap_mirror\": {\n            \"name\": \"mirror-traffic-of-server-a0\",\n            \"description\": \"Mirror the traffic from server-a0\",\n            \"tunnel_id_in\": 1,\n            \"tunnel_id_out\": 2,\n             ...\n\nWhen a direction is missing or the corresponding tunnel_id is null then that direction is not mirrored.\n\nIn this case the direction \u0027BOTH\u0027 is not needed.\n\nTechnically we could reject {\"IN\": 1, \"OUT\": the-same-as-IN} only from the ovn backend, but that would be a pain for the client programmer, so I suggest to prohibit this for all backends.","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"b5eed1bdc6ffa311ed24f6eab7d27ac4cbbe0d69","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":".. warning::"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    It is not possible to create tunnel (GRE or ERSPAN) with the same"},{"line_number":205,"context_line":"    tunnel_id to the same remote_ip from the same portwith OVN. Due to this"},{"line_number":206,"context_line":"    if the user chooses BOTH for direction 2 tunnels must be created with with"},{"line_number":207,"context_line":"    different tunnel_id."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    This is something to make visible for the user on the API, when she/he"},{"line_number":210,"context_line":"    GET the tap_mirror, show that there are 2 tunnel_ids used for this"},{"line_number":211,"context_line":"    specific tap_mirror. This also means that the receiving side of the"},{"line_number":212,"context_line":"    mirror must be prepared that the egress and ingress direction will be"},{"line_number":213,"context_line":"    encapsulated to tunnels with different tunnel_id."},{"line_number":214,"context_line":""},{"line_number":215,"context_line":".. note::"},{"line_number":216,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"c01b0550_3114627e","line":213,"range":{"start_line":204,"start_character":4,"end_line":213,"end_character":53},"in_reply_to":"09434d1e_00dbc5c5","updated":"2023-05-23 09:31:34.000000000","message":"Looks much better.","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"cdc1e4802f844b76f7e6d03e9db64f7bcf2c4c1b","unresolved":true,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":".. warning::"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    It is not possible to create tunnel (GRE or ERSPAN) with the same"},{"line_number":205,"context_line":"    tunnel_id to the same remote_ip from the same portwith OVN. Due to this"},{"line_number":206,"context_line":"    if the user chooses BOTH for direction 2 tunnels must be created with with"},{"line_number":207,"context_line":"    different tunnel_id."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    This is something to make visible for the user on the API, when she/he"},{"line_number":210,"context_line":"    GET the tap_mirror, show that there are 2 tunnel_ids used for this"},{"line_number":211,"context_line":"    specific tap_mirror. This also means that the receiving side of the"},{"line_number":212,"context_line":"    mirror must be prepared that the egress and ingress direction will be"},{"line_number":213,"context_line":"    encapsulated to tunnels with different tunnel_id."},{"line_number":214,"context_line":""},{"line_number":215,"context_line":".. note::"},{"line_number":216,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"09434d1e_00dbc5c5","line":213,"range":{"start_line":204,"start_character":4,"end_line":213,"end_character":53},"in_reply_to":"0f5a6f9e_e0fbe118","updated":"2023-05-15 18:30:12.000000000","message":"really good idea, makes things much simpler, see PS3 l245.","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"25eaa0c606b345d98d0d9112f03d2dfa1c8f8fb8","unresolved":true,"context_lines":[{"line_number":222,"context_line":""},{"line_number":223,"context_line":"    * For the GRE type mirroring 8 octet extra header is added over IP headers."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"    * For ERSPAN 8 octet is added for GRE, 8 octet is acced for ERSPAN and"},{"line_number":226,"context_line":"      an extra trailing 4 byte CRC is added, so in summary 20 octets extra"},{"line_number":227,"context_line":"      header is added in this case."},{"line_number":228,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5d01f2da_83299366","line":225,"updated":"2023-05-10 13:07:01.000000000","message":"nit: added","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"cdc1e4802f844b76f7e6d03e9db64f7bcf2c4c1b","unresolved":false,"context_lines":[{"line_number":222,"context_line":""},{"line_number":223,"context_line":"    * For the GRE type mirroring 8 octet extra header is added over IP headers."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"    * For ERSPAN 8 octet is added for GRE, 8 octet is acced for ERSPAN and"},{"line_number":226,"context_line":"      an extra trailing 4 byte CRC is added, so in summary 20 octets extra"},{"line_number":227,"context_line":"      header is added in this case."},{"line_number":228,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f49d171_258161fd","line":225,"in_reply_to":"5d01f2da_83299366","updated":"2023-05-15 18:30:12.000000000","message":"Done","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"25eaa0c606b345d98d0d9112f03d2dfa1c8f8fb8","unresolved":true,"context_lines":[{"line_number":247,"context_line":"            \u0027port_id\u0027: {"},{"line_number":248,"context_line":"                \u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":249,"context_line":"                \u0027validate\u0027: {\u0027type:uuid\u0027: None},"},{"line_number":250,"context_line":"                \u0027enforce_policy\u0027: True, \u0027is_visible\u0027: True},"},{"line_number":251,"context_line":"            \u0027direction\u0027: {"},{"line_number":252,"context_line":"                \u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":253,"context_line":"                \u0027validate\u0027: {\u0027type:values\u0027: taas.direction_enum},"}],"source_content_type":"text/x-rst","patch_set":2,"id":"94984e56_3671accc","line":250,"range":{"start_line":250,"start_character":17,"end_line":250,"end_character":31},"updated":"2023-05-10 13:07:01.000000000","message":"What do we need a policy for if this feature must always be admin-only?","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"b5eed1bdc6ffa311ed24f6eab7d27ac4cbbe0d69","unresolved":true,"context_lines":[{"line_number":247,"context_line":"            \u0027port_id\u0027: {"},{"line_number":248,"context_line":"                \u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":249,"context_line":"                \u0027validate\u0027: {\u0027type:uuid\u0027: None},"},{"line_number":250,"context_line":"                \u0027enforce_policy\u0027: True, \u0027is_visible\u0027: True},"},{"line_number":251,"context_line":"            \u0027direction\u0027: {"},{"line_number":252,"context_line":"                \u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":253,"context_line":"                \u0027validate\u0027: {\u0027type:values\u0027: taas.direction_enum},"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b0a10f23_18e65f3d","line":250,"range":{"start_line":250,"start_character":17,"end_line":250,"end_character":31},"in_reply_to":"4ef27b4c_d2877927","updated":"2023-05-23 09:31:34.000000000","message":"Yes, that\u0027s why I\u0027m asking.","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"35ef8b42abefa49560b8afa3f4fc88762ff006f9","unresolved":true,"context_lines":[{"line_number":247,"context_line":"            \u0027port_id\u0027: {"},{"line_number":248,"context_line":"                \u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":249,"context_line":"                \u0027validate\u0027: {\u0027type:uuid\u0027: None},"},{"line_number":250,"context_line":"                \u0027enforce_policy\u0027: True, \u0027is_visible\u0027: True},"},{"line_number":251,"context_line":"            \u0027direction\u0027: {"},{"line_number":252,"context_line":"                \u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":253,"context_line":"                \u0027validate\u0027: {\u0027type:values\u0027: taas.direction_enum},"}],"source_content_type":"text/x-rst","patch_set":2,"id":"4ef27b4c_d2877927","line":250,"range":{"start_line":250,"start_character":17,"end_line":250,"end_character":31},"in_reply_to":"94984e56_3671accc","updated":"2023-05-16 18:37:19.000000000","message":"l140 states that this API is admin-only, is it what you think?","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"25eaa0c606b345d98d0d9112f03d2dfa1c8f8fb8","unresolved":true,"context_lines":[{"line_number":254,"context_line":"                \u0027is_visible\u0027: True},"},{"line_number":255,"context_line":"            \u0027remote_ip\u0027: {"},{"line_number":256,"context_line":"                \u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":257,"context_line":"                \u0027validate\u0027: {\u0027type:ip_address\u0027: None},"},{"line_number":258,"context_line":"                \u0027is_visible\u0027: True},"},{"line_number":259,"context_line":"            \u0027tunnel_id\u0027: {"},{"line_number":260,"context_line":"                \u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"44ff916d_76f154db","line":257,"range":{"start_line":257,"start_character":35,"end_line":257,"end_character":45},"updated":"2023-05-10 13:07:01.000000000","message":"I guess we support both ipv4 and ipv6.","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"cdc1e4802f844b76f7e6d03e9db64f7bcf2c4c1b","unresolved":true,"context_lines":[{"line_number":254,"context_line":"                \u0027is_visible\u0027: True},"},{"line_number":255,"context_line":"            \u0027remote_ip\u0027: {"},{"line_number":256,"context_line":"                \u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":257,"context_line":"                \u0027validate\u0027: {\u0027type:ip_address\u0027: None},"},{"line_number":258,"context_line":"                \u0027is_visible\u0027: True},"},{"line_number":259,"context_line":"            \u0027tunnel_id\u0027: {"},{"line_number":260,"context_line":"                \u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dd49777d_a517931b","line":257,"range":{"start_line":257,"start_character":35,"end_line":257,"end_character":45},"in_reply_to":"44ff916d_76f154db","updated":"2023-05-15 18:30:12.000000000","message":"yes, but to tell the truth I never tried with IPv6","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"25eaa0c606b345d98d0d9112f03d2dfa1c8f8fb8","unresolved":true,"context_lines":[{"line_number":294,"context_line":"This table will represent the tunnel_ids used by the mirror::"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        op.create_table("},{"line_number":297,"context_line":"            \u0027taptunnel_ids\u0027,"},{"line_number":298,"context_line":"            sa.Column(\u0027id\u0027, sa.String(length\u003ddb_const.UUID_FIELD_SIZE),"},{"line_number":299,"context_line":"                      primary_key\u003dTrue, nullable\u003dFalse),"},{"line_number":300,"context_line":"            sa.Column(\u0027tunnel_value\u0027, sa.Integer(), nullable\u003dFalse),"}],"source_content_type":"text/x-rst","patch_set":2,"id":"166fe90c_2ecce4c2","line":297,"updated":"2023-05-10 13:07:01.000000000","message":"With L213 a second table is not needed.","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"cdc1e4802f844b76f7e6d03e9db64f7bcf2c4c1b","unresolved":false,"context_lines":[{"line_number":294,"context_line":"This table will represent the tunnel_ids used by the mirror::"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        op.create_table("},{"line_number":297,"context_line":"            \u0027taptunnel_ids\u0027,"},{"line_number":298,"context_line":"            sa.Column(\u0027id\u0027, sa.String(length\u003ddb_const.UUID_FIELD_SIZE),"},{"line_number":299,"context_line":"                      primary_key\u003dTrue, nullable\u003dFalse),"},{"line_number":300,"context_line":"            sa.Column(\u0027tunnel_value\u0027, sa.Integer(), nullable\u003dFalse),"}],"source_content_type":"text/x-rst","patch_set":2,"id":"116cff23_0d64c635","line":297,"in_reply_to":"166fe90c_2ecce4c2","updated":"2023-05-15 18:30:12.000000000","message":"Done","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"25eaa0c606b345d98d0d9112f03d2dfa1c8f8fb8","unresolved":true,"context_lines":[{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        op.create_table("},{"line_number":297,"context_line":"            \u0027taptunnel_ids\u0027,"},{"line_number":298,"context_line":"            sa.Column(\u0027id\u0027, sa.String(length\u003ddb_const.UUID_FIELD_SIZE),"},{"line_number":299,"context_line":"                      primary_key\u003dTrue, nullable\u003dFalse),"},{"line_number":300,"context_line":"            sa.Column(\u0027tunnel_value\u0027, sa.Integer(), nullable\u003dFalse),"},{"line_number":301,"context_line":"            sa.Column(\u0027tap_mirror_id\u0027, sa.String("}],"source_content_type":"text/x-rst","patch_set":2,"id":"48b17fe9_6b5af367","line":298,"range":{"start_line":298,"start_character":23,"end_line":298,"end_character":25},"updated":"2023-05-10 13:07:01.000000000","message":"What is this the id of?","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"cdc1e4802f844b76f7e6d03e9db64f7bcf2c4c1b","unresolved":true,"context_lines":[{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        op.create_table("},{"line_number":297,"context_line":"            \u0027taptunnel_ids\u0027,"},{"line_number":298,"context_line":"            sa.Column(\u0027id\u0027, sa.String(length\u003ddb_const.UUID_FIELD_SIZE),"},{"line_number":299,"context_line":"                      primary_key\u003dTrue, nullable\u003dFalse),"},{"line_number":300,"context_line":"            sa.Column(\u0027tunnel_value\u0027, sa.Integer(), nullable\u003dFalse),"},{"line_number":301,"context_line":"            sa.Column(\u0027tap_mirror_id\u0027, sa.String("}],"source_content_type":"text/x-rst","patch_set":2,"id":"d9779343_93ce1679","line":298,"range":{"start_line":298,"start_character":23,"end_line":298,"end_character":25},"in_reply_to":"48b17fe9_6b5af367","updated":"2023-05-15 18:30:12.000000000","message":"I removed this table.","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"25eaa0c606b345d98d0d9112f03d2dfa1c8f8fb8","unresolved":true,"context_lines":[{"line_number":297,"context_line":"            \u0027taptunnel_ids\u0027,"},{"line_number":298,"context_line":"            sa.Column(\u0027id\u0027, sa.String(length\u003ddb_const.UUID_FIELD_SIZE),"},{"line_number":299,"context_line":"                      primary_key\u003dTrue, nullable\u003dFalse),"},{"line_number":300,"context_line":"            sa.Column(\u0027tunnel_value\u0027, sa.Integer(), nullable\u003dFalse),"},{"line_number":301,"context_line":"            sa.Column(\u0027tap_mirror_id\u0027, sa.String("},{"line_number":302,"context_line":"                      length\u003ddb_const.UUID_FIELD_SIZE), nullable\u003dFalse),"},{"line_number":303,"context_line":"            sa.ForeignKeyConstraint([\u0027tap_mirror_id\u0027], [\u0027tapmirrors.id\u0027],"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3289d193_53f3b661","line":300,"range":{"start_line":300,"start_character":30,"end_line":300,"end_character":35},"updated":"2023-05-10 13:07:01.000000000","message":"Is this the tunnel_id just with a strange name?","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"25eaa0c606b345d98d0d9112f03d2dfa1c8f8fb8","unresolved":true,"context_lines":[{"line_number":333,"context_line":"      Index/Key:  42"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"    $ sudo ovs-vsctl show"},{"line_number":336,"context_line":"        Bridge br-int"},{"line_number":337,"context_line":"            ..."},{"line_number":338,"context_line":"            Port ovn-my_mirror2"},{"line_number":339,"context_line":"                Interface ovn-mirror_out_297b12c0-e9a5-11ed-9f90-07946c615270"}],"source_content_type":"text/x-rst","patch_set":2,"id":"4c43c65d_80d5066d","line":336,"range":{"start_line":336,"start_character":15,"end_line":336,"end_character":21},"updated":"2023-05-10 13:07:01.000000000","message":"It is weird that this is on br-int.","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"cdc1e4802f844b76f7e6d03e9db64f7bcf2c4c1b","unresolved":true,"context_lines":[{"line_number":333,"context_line":"      Index/Key:  42"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"    $ sudo ovs-vsctl show"},{"line_number":336,"context_line":"        Bridge br-int"},{"line_number":337,"context_line":"            ..."},{"line_number":338,"context_line":"            Port ovn-my_mirror2"},{"line_number":339,"context_line":"                Interface ovn-mirror_out_297b12c0-e9a5-11ed-9f90-07946c615270"}],"source_content_type":"text/x-rst","patch_set":2,"id":"8eac8cef_719ae3f3","line":336,"range":{"start_line":336,"start_character":15,"end_line":336,"end_character":21},"in_reply_to":"4c43c65d_80d5066d","updated":"2023-05-15 18:30:12.000000000","message":"agree, I don\u0027t see any place where it can be configured.\nbut as I see it is mostly hardcoded to OVN: https://github.com/ovn-org/ovn/blob/main/controller/mirror.c","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"25eaa0c606b345d98d0d9112f03d2dfa1c8f8fb8","unresolved":true,"context_lines":[{"line_number":338,"context_line":"            Port ovn-my_mirror2"},{"line_number":339,"context_line":"                Interface ovn-mirror_out_297b12c0-e9a5-11ed-9f90-07946c615270"},{"line_number":340,"context_line":"                    type: erspan"},{"line_number":341,"context_line":"                    options: {erspan_idx\u003d\"42\", erspan_ver\u003d\"1\", key\u003d\"2\", remote_ip\u003d\"100.109.0.142\"}"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"With OVN to mirror both ingress and egress traffic of the source port"},{"line_number":344,"context_line":"2 mirrors must be created (as the OVN mirror can have only ``from-lport`` or"}],"source_content_type":"text/x-rst","patch_set":2,"id":"47d57422_44c3b87e","line":341,"range":{"start_line":341,"start_character":63,"end_line":341,"end_character":70},"updated":"2023-05-10 13:07:01.000000000","message":"What is this key?","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"cdc1e4802f844b76f7e6d03e9db64f7bcf2c4c1b","unresolved":true,"context_lines":[{"line_number":338,"context_line":"            Port ovn-my_mirror2"},{"line_number":339,"context_line":"                Interface ovn-mirror_out_297b12c0-e9a5-11ed-9f90-07946c615270"},{"line_number":340,"context_line":"                    type: erspan"},{"line_number":341,"context_line":"                    options: {erspan_idx\u003d\"42\", erspan_ver\u003d\"1\", key\u003d\"2\", remote_ip\u003d\"100.109.0.142\"}"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"With OVN to mirror both ingress and egress traffic of the source port"},{"line_number":344,"context_line":"2 mirrors must be created (as the OVN mirror can have only ``from-lport`` or"}],"source_content_type":"text/x-rst","patch_set":2,"id":"6bf99679_6576e835","line":341,"range":{"start_line":341,"start_character":63,"end_line":341,"end_character":70},"in_reply_to":"47d57422_44c3b87e","updated":"2023-05-15 18:30:12.000000000","message":"to tell the truth no idea, I have to run again a test tomorrow to see if I can associate it with anything in the captures :-)\nNothing in the documentation which can be relevant","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"38695637a80011e9895a6d1c37b4d456c90b98d6","unresolved":true,"context_lines":[{"line_number":338,"context_line":"            Port ovn-my_mirror2"},{"line_number":339,"context_line":"                Interface ovn-mirror_out_297b12c0-e9a5-11ed-9f90-07946c615270"},{"line_number":340,"context_line":"                    type: erspan"},{"line_number":341,"context_line":"                    options: {erspan_idx\u003d\"42\", erspan_ver\u003d\"1\", key\u003d\"2\", remote_ip\u003d\"100.109.0.142\"}"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"With OVN to mirror both ingress and egress traffic of the source port"},{"line_number":344,"context_line":"2 mirrors must be created (as the OVN mirror can have only ``from-lport`` or"}],"source_content_type":"text/x-rst","patch_set":2,"id":"318cbe38_a1b67697","line":341,"range":{"start_line":341,"start_character":63,"end_line":341,"end_character":70},"in_reply_to":"6bf99679_6576e835","updated":"2023-05-16 11:24:22.000000000","message":"same question","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"25eaa0c606b345d98d0d9112f03d2dfa1c8f8fb8","unresolved":true,"context_lines":[{"line_number":351,"context_line":"    OVN chose ERSPAN version 1 which is directionless by the protocol"},{"line_number":352,"context_line":"    description, but a direction can be selected as ``filter`` when the"},{"line_number":353,"context_line":"    mirror is created with ovn-nbctl, or via ovsdb (see"},{"line_number":354,"context_line":"    `ovn-nb.ovsschema mirror table`_)"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"So if the user creates a tap_mirror with direction ``IN`` the filter will be"},{"line_number":357,"context_line":"``to-lport``, if ``OUT`` the filter will be ``from-lport`` and in case of"}],"source_content_type":"text/x-rst","patch_set":2,"id":"a611ebb8_9d8615d9","line":354,"updated":"2023-05-10 13:07:01.000000000","message":"I read hardly anything from the ERSPAN IETF draft, but I believe the ERSPAN protocol direction and the concept of direction in taas are two different and independent things. The taas direction is a way of filtering what packets to mirror, while the ERSPAN protocol direction is probably an ERSPAN protocol field to transport this information.","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"cdc1e4802f844b76f7e6d03e9db64f7bcf2c4c1b","unresolved":true,"context_lines":[{"line_number":351,"context_line":"    OVN chose ERSPAN version 1 which is directionless by the protocol"},{"line_number":352,"context_line":"    description, but a direction can be selected as ``filter`` when the"},{"line_number":353,"context_line":"    mirror is created with ovn-nbctl, or via ovsdb (see"},{"line_number":354,"context_line":"    `ovn-nb.ovsschema mirror table`_)"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"So if the user creates a tap_mirror with direction ``IN`` the filter will be"},{"line_number":357,"context_line":"``to-lport``, if ``OUT`` the filter will be ``from-lport`` and in case of"}],"source_content_type":"text/x-rst","patch_set":2,"id":"628f2331_0232c0e2","line":354,"in_reply_to":"a611ebb8_9d8615d9","updated":"2023-05-15 18:30:12.000000000","message":"ack, I will make it much cleaner","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"25eaa0c606b345d98d0d9112f03d2dfa1c8f8fb8","unresolved":true,"context_lines":[{"line_number":355,"context_line":""},{"line_number":356,"context_line":"So if the user creates a tap_mirror with direction ``IN`` the filter will be"},{"line_number":357,"context_line":"``to-lport``, if ``OUT`` the filter will be ``from-lport`` and in case of"},{"line_number":358,"context_line":"``BOTH`` 2 mirrors will be created one with ``to-lort`` and one with"},{"line_number":359,"context_line":"``from-lport``."},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"The above means that in case of mirroring both ingress and egrees traffic"}],"source_content_type":"text/x-rst","patch_set":2,"id":"f250fad1_0e24363f","line":358,"range":{"start_line":358,"start_character":49,"end_line":358,"end_character":53},"updated":"2023-05-10 13:07:01.000000000","message":"nit: lport","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"cdc1e4802f844b76f7e6d03e9db64f7bcf2c4c1b","unresolved":false,"context_lines":[{"line_number":355,"context_line":""},{"line_number":356,"context_line":"So if the user creates a tap_mirror with direction ``IN`` the filter will be"},{"line_number":357,"context_line":"``to-lport``, if ``OUT`` the filter will be ``from-lport`` and in case of"},{"line_number":358,"context_line":"``BOTH`` 2 mirrors will be created one with ``to-lort`` and one with"},{"line_number":359,"context_line":"``from-lport``."},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"The above means that in case of mirroring both ingress and egrees traffic"}],"source_content_type":"text/x-rst","patch_set":2,"id":"259090e0_51cbe0e1","line":358,"range":{"start_line":358,"start_character":49,"end_line":358,"end_character":53},"in_reply_to":"f250fad1_0e24363f","updated":"2023-05-15 18:30:12.000000000","message":"Done","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"25eaa0c606b345d98d0d9112f03d2dfa1c8f8fb8","unresolved":true,"context_lines":[{"line_number":437,"context_line":""},{"line_number":438,"context_line":"* Change tap-as-a-service db schema accordingly."},{"line_number":439,"context_line":""},{"line_number":440,"context_line":"* Adopt ovsdbapp to make it possible to manipulate both ovsdb and ovn-northd"},{"line_number":441,"context_line":"  and create mirrors."},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"* Change OVS driver."}],"source_content_type":"text/x-rst","patch_set":2,"id":"b2672c09_cdba93c1","line":440,"range":{"start_line":440,"start_character":2,"end_line":440,"end_character":7},"updated":"2023-05-10 13:07:01.000000000","message":"nit: Adapt","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"cdc1e4802f844b76f7e6d03e9db64f7bcf2c4c1b","unresolved":false,"context_lines":[{"line_number":437,"context_line":""},{"line_number":438,"context_line":"* Change tap-as-a-service db schema accordingly."},{"line_number":439,"context_line":""},{"line_number":440,"context_line":"* Adopt ovsdbapp to make it possible to manipulate both ovsdb and ovn-northd"},{"line_number":441,"context_line":"  and create mirrors."},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"* Change OVS driver."}],"source_content_type":"text/x-rst","patch_set":2,"id":"4838ca2b_39ecdf76","line":440,"range":{"start_line":440,"start_character":2,"end_line":440,"end_character":7},"in_reply_to":"b2672c09_cdba93c1","updated":"2023-05-15 18:30:12.000000000","message":"Done","commit_id":"cbb654cf46081dafa2b45109912db9184406efaa"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"38695637a80011e9895a6d1c37b4d456c90b98d6","unresolved":true,"context_lines":[{"line_number":38,"context_line":"This specification proposes an extension to the current tap-as-a-service"},{"line_number":39,"context_line":"(TAAS) API to allow the users to create ERSPAN or GRE mirrors from Neutron"},{"line_number":40,"context_line":"ports to a remote IP, and proposes the necessary backend changes to the"},{"line_number":41,"context_line":"current OVS driver of taas and proposes a new driver for OVN to use ERSPAN"},{"line_number":42,"context_line":"or GRE mirroring with OVN."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Problem Description"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc027a6_4f52564c","line":41,"range":{"start_line":41,"start_character":22,"end_line":41,"end_character":26},"updated":"2023-05-16 11:24:22.000000000","message":"nit: TaaS","commit_id":"b7be3d900187080e299a6105b5aac1fd40942fb7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"35ef8b42abefa49560b8afa3f4fc88762ff006f9","unresolved":true,"context_lines":[{"line_number":38,"context_line":"This specification proposes an extension to the current tap-as-a-service"},{"line_number":39,"context_line":"(TAAS) API to allow the users to create ERSPAN or GRE mirrors from Neutron"},{"line_number":40,"context_line":"ports to a remote IP, and proposes the necessary backend changes to the"},{"line_number":41,"context_line":"current OVS driver of taas and proposes a new driver for OVN to use ERSPAN"},{"line_number":42,"context_line":"or GRE mirroring with OVN."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Problem Description"}],"source_content_type":"text/x-rst","patch_set":3,"id":"eb2b5603_552b05c4","line":41,"range":{"start_line":41,"start_character":22,"end_line":41,"end_character":26},"in_reply_to":"5fc027a6_4f52564c","updated":"2023-05-16 18:37:19.000000000","message":"done for all occurances (I hope)","commit_id":"b7be3d900187080e299a6105b5aac1fd40942fb7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"38695637a80011e9895a6d1c37b4d456c90b98d6","unresolved":true,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":".. warning::"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    Only the traffic can be mirrored by tap-as-a-service which anyway"},{"line_number":129,"context_line":"    allowed by security-groups!"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"In case of the ERSPAN implementation of OVS and OVN the source is a bridge port"},{"line_number":132,"context_line":"(in case of OVS) or a logical switch port (in case of OVN) and the destination"}],"source_content_type":"text/x-rst","patch_set":3,"id":"cc6a930c_d7e65c47","line":129,"range":{"start_line":128,"start_character":4,"end_line":129,"end_character":31},"updated":"2023-05-16 11:24:22.000000000","message":"Sorry, I don\u0027t understand this phrase.","commit_id":"b7be3d900187080e299a6105b5aac1fd40942fb7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"35ef8b42abefa49560b8afa3f4fc88762ff006f9","unresolved":true,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":".. warning::"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    Only the traffic can be mirrored by tap-as-a-service which anyway"},{"line_number":129,"context_line":"    allowed by security-groups!"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"In case of the ERSPAN implementation of OVS and OVN the source is a bridge port"},{"line_number":132,"context_line":"(in case of OVS) or a logical switch port (in case of OVN) and the destination"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3cf9a953_f7e6ecd6","line":129,"range":{"start_line":128,"start_character":4,"end_line":129,"end_character":31},"in_reply_to":"cc6a930c_d7e65c47","updated":"2023-05-16 18:37:19.000000000","message":"yeah it was not my best sentence. I hope it is better now","commit_id":"b7be3d900187080e299a6105b5aac1fd40942fb7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"38695637a80011e9895a6d1c37b4d456c90b98d6","unresolved":true,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":".. warning::"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    It is not possible to create tunnel (GRE or ERSPAN) with the same"},{"line_number":204,"context_line":"    tunnel_id to the same remote_ip from the same port with OVN. This means"},{"line_number":205,"context_line":"    that the tunnel_id can\u0027t be the same for the 2 directions."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":".. note::"},{"line_number":208,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9eedff9c_a14b31f9","line":205,"range":{"start_line":203,"start_character":3,"end_line":205,"end_character":62},"updated":"2023-05-16 11:24:22.000000000","message":"Sorry, I\u0027m a bit lost with this explanation. That means you need to:\n* Create one single tunnel for each direction. What if this tunnel ID is being used?\n* Could that tunnel ID be used for other purposes?","commit_id":"b7be3d900187080e299a6105b5aac1fd40942fb7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"35ef8b42abefa49560b8afa3f4fc88762ff006f9","unresolved":true,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":".. warning::"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    It is not possible to create tunnel (GRE or ERSPAN) with the same"},{"line_number":204,"context_line":"    tunnel_id to the same remote_ip from the same port with OVN. This means"},{"line_number":205,"context_line":"    that the tunnel_id can\u0027t be the same for the 2 directions."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":".. note::"},{"line_number":208,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"21e5c370_5f86204c","line":205,"range":{"start_line":203,"start_character":3,"end_line":205,"end_character":62},"in_reply_to":"9eedff9c_a14b31f9","updated":"2023-05-16 18:37:19.000000000","message":"The API will throw a 409 or similar. As I think about it the best would be to have a separate table for tunnel ids (like in ps2 I think) where the tunnel id is unique, what do you think?","commit_id":"b7be3d900187080e299a6105b5aac1fd40942fb7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"38695637a80011e9895a6d1c37b4d456c90b98d6","unresolved":true,"context_lines":[{"line_number":268,"context_line":"            sa.Column(\u0027id\u0027, sa.String(length\u003ddb_const.UUID_FIELD_SIZE),"},{"line_number":269,"context_line":"                      primary_key\u003dTrue, nullable\u003dFalse),"},{"line_number":270,"context_line":"            sa.Column(\u0027project_id\u0027, sa.String("},{"line_number":271,"context_line":"                      length\u003ddb_const.PROJECT_ID_FIELD_SIZE), nullable\u003dTrue),"},{"line_number":272,"context_line":"            sa.Column(\u0027name\u0027, sa.String(length\u003ddb_const.NAME_FIELD_SIZE),"},{"line_number":273,"context_line":"                      nullable\u003dTrue),"},{"line_number":274,"context_line":"            sa.Column(\u0027description\u0027, sa.String("}],"source_content_type":"text/x-rst","patch_set":3,"id":"543b2941_97dd299b","line":271,"range":{"start_line":271,"start_character":61,"end_line":271,"end_character":75},"updated":"2023-05-16 11:24:22.000000000","message":"Could it be nullable the project?","commit_id":"b7be3d900187080e299a6105b5aac1fd40942fb7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"35ef8b42abefa49560b8afa3f4fc88762ff006f9","unresolved":true,"context_lines":[{"line_number":268,"context_line":"            sa.Column(\u0027id\u0027, sa.String(length\u003ddb_const.UUID_FIELD_SIZE),"},{"line_number":269,"context_line":"                      primary_key\u003dTrue, nullable\u003dFalse),"},{"line_number":270,"context_line":"            sa.Column(\u0027project_id\u0027, sa.String("},{"line_number":271,"context_line":"                      length\u003ddb_const.PROJECT_ID_FIELD_SIZE), nullable\u003dTrue),"},{"line_number":272,"context_line":"            sa.Column(\u0027name\u0027, sa.String(length\u003ddb_const.NAME_FIELD_SIZE),"},{"line_number":273,"context_line":"                      nullable\u003dTrue),"},{"line_number":274,"context_line":"            sa.Column(\u0027description\u0027, sa.String("}],"source_content_type":"text/x-rst","patch_set":3,"id":"4a4889e5_90c1669f","line":271,"range":{"start_line":271,"start_character":61,"end_line":271,"end_character":75},"in_reply_to":"543b2941_97dd299b","updated":"2023-05-16 18:37:19.000000000","message":"no, it was a bad copy-paste, thanks","commit_id":"b7be3d900187080e299a6105b5aac1fd40942fb7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"38695637a80011e9895a6d1c37b4d456c90b98d6","unresolved":true,"context_lines":[{"line_number":273,"context_line":"                      nullable\u003dTrue),"},{"line_number":274,"context_line":"            sa.Column(\u0027description\u0027, sa.String("},{"line_number":275,"context_line":"                      length\u003ddb_const.DESCRIPTION_FIELD_SIZE), nullable\u003dTrue),"},{"line_number":276,"context_line":"            sa.Column(\u0027port_id\u0027, sa.String(db_const.UUID_FIELD_SIZE),"},{"line_number":277,"context_line":"                      nullable\u003dFalse),"},{"line_number":278,"context_line":"            sa.Column(\u0027directions\u0027, sa.String(255), nullable\u003dFalse),"},{"line_number":279,"context_line":"            sa.Column(\u0027remote_ip\u0027, sa.String(db_const.IP_ADDR_FIELD_SIZE)),"},{"line_number":280,"context_line":"            sa.Column(\u0027mirror_type\u0027, mirror_type_enum, nullable\u003dFalse)"}],"source_content_type":"text/x-rst","patch_set":3,"id":"f133af18_6ab8e046","line":277,"range":{"start_line":276,"start_character":12,"end_line":277,"end_character":38},"updated":"2023-05-16 11:24:22.000000000","message":"If only one port can be added to a tap mirror, we should add a constraint to limit that. The \"port_id\" in \"tapmirrors\" table should be unique","commit_id":"b7be3d900187080e299a6105b5aac1fd40942fb7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"35ef8b42abefa49560b8afa3f4fc88762ff006f9","unresolved":false,"context_lines":[{"line_number":273,"context_line":"                      nullable\u003dTrue),"},{"line_number":274,"context_line":"            sa.Column(\u0027description\u0027, sa.String("},{"line_number":275,"context_line":"                      length\u003ddb_const.DESCRIPTION_FIELD_SIZE), nullable\u003dTrue),"},{"line_number":276,"context_line":"            sa.Column(\u0027port_id\u0027, sa.String(db_const.UUID_FIELD_SIZE),"},{"line_number":277,"context_line":"                      nullable\u003dFalse),"},{"line_number":278,"context_line":"            sa.Column(\u0027directions\u0027, sa.String(255), nullable\u003dFalse),"},{"line_number":279,"context_line":"            sa.Column(\u0027remote_ip\u0027, sa.String(db_const.IP_ADDR_FIELD_SIZE)),"},{"line_number":280,"context_line":"            sa.Column(\u0027mirror_type\u0027, mirror_type_enum, nullable\u003dFalse)"}],"source_content_type":"text/x-rst","patch_set":3,"id":"8d2d2124_7eae2043","line":277,"range":{"start_line":276,"start_character":12,"end_line":277,"end_character":38},"in_reply_to":"f133af18_6ab8e046","updated":"2023-05-16 18:37:19.000000000","message":"Done, thanks","commit_id":"b7be3d900187080e299a6105b5aac1fd40942fb7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"38695637a80011e9895a6d1c37b4d456c90b98d6","unresolved":true,"context_lines":[{"line_number":301,"context_line":"      Type     :  erspan"},{"line_number":302,"context_line":"      Sink     :  100.109.0.142"},{"line_number":303,"context_line":"      Filter   :  from-lport"},{"line_number":304,"context_line":"      Index/Key:  42"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"    $ sudo ovs-vsctl show"},{"line_number":307,"context_line":"        Bridge br-int"}],"source_content_type":"text/x-rst","patch_set":3,"id":"51cbf0ad_45f22026","line":304,"range":{"start_line":304,"start_character":18,"end_line":304,"end_character":20},"updated":"2023-05-16 11:24:22.000000000","message":"Is that the tunnel ID? Same question as before, what if that clashes with other tap mirror?","commit_id":"b7be3d900187080e299a6105b5aac1fd40942fb7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"35ef8b42abefa49560b8afa3f4fc88762ff006f9","unresolved":true,"context_lines":[{"line_number":301,"context_line":"      Type     :  erspan"},{"line_number":302,"context_line":"      Sink     :  100.109.0.142"},{"line_number":303,"context_line":"      Filter   :  from-lport"},{"line_number":304,"context_line":"      Index/Key:  42"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"    $ sudo ovs-vsctl show"},{"line_number":307,"context_line":"        Bridge br-int"}],"source_content_type":"text/x-rst","patch_set":3,"id":"f07c0374_a17d4684","line":304,"range":{"start_line":304,"start_character":18,"end_line":304,"end_character":20},"in_reply_to":"51cbf0ad_45f22026","updated":"2023-05-16 18:37:19.000000000","message":"I just rechecked and will refresh tomorrow the text, I overlooked the fact that OVN sets both erspan_idx and key to the same value (in this case 42)","commit_id":"b7be3d900187080e299a6105b5aac1fd40942fb7"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"b5eed1bdc6ffa311ed24f6eab7d27ac4cbbe0d69","unresolved":true,"context_lines":[{"line_number":301,"context_line":"      Type     :  erspan"},{"line_number":302,"context_line":"      Sink     :  100.109.0.142"},{"line_number":303,"context_line":"      Filter   :  from-lport"},{"line_number":304,"context_line":"      Index/Key:  42"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"    $ sudo ovs-vsctl show"},{"line_number":307,"context_line":"        Bridge br-int"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fce63fd_69a9004a","line":304,"range":{"start_line":304,"start_character":18,"end_line":304,"end_character":20},"in_reply_to":"f07c0374_a17d4684","updated":"2023-05-23 09:31:34.000000000","message":"Please see my comment in ps5, L316.","commit_id":"b7be3d900187080e299a6105b5aac1fd40942fb7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"38695637a80011e9895a6d1c37b4d456c90b98d6","unresolved":true,"context_lines":[{"line_number":337,"context_line":"------------------"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"To keep consistency between the 2 drivers, this specification proposes to use"},{"line_number":340,"context_line":"GRE and ERSPAN version 1 for OVS drive also."},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"The end-to-end call will look like this::"},{"line_number":343,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"2d03af87_be80facf","line":340,"range":{"start_line":340,"start_character":0,"end_line":340,"end_character":24},"updated":"2023-05-16 11:24:22.000000000","message":"nit: maybe it is worth mentioning that in the \"Proposed Change\" section, just as a limitation in the implementation (or the scope of this implementation).","commit_id":"b7be3d900187080e299a6105b5aac1fd40942fb7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"35ef8b42abefa49560b8afa3f4fc88762ff006f9","unresolved":true,"context_lines":[{"line_number":337,"context_line":"------------------"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"To keep consistency between the 2 drivers, this specification proposes to use"},{"line_number":340,"context_line":"GRE and ERSPAN version 1 for OVS drive also."},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"The end-to-end call will look like this::"},{"line_number":343,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a53388e_2748d474","line":340,"range":{"start_line":340,"start_character":0,"end_line":340,"end_character":24},"in_reply_to":"2d03af87_be80facf","updated":"2023-05-16 18:37:19.000000000","message":"good idea I added that line","commit_id":"b7be3d900187080e299a6105b5aac1fd40942fb7"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"b5eed1bdc6ffa311ed24f6eab7d27ac4cbbe0d69","unresolved":true,"context_lines":[{"line_number":160,"context_line":"    }"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"* ``port_id`` is the source of the mirroring, this is a ``Neutron port``."},{"line_number":163,"context_line":"  One port can attached to one tap_mirror only."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":".. note::"},{"line_number":166,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9d011738_9dc39075","line":163,"range":{"start_line":163,"start_character":11,"end_line":163,"end_character":14},"updated":"2023-05-23 09:31:34.000000000","message":"nit: can be","commit_id":"5e778f4f24ee37b305b285c72ae6640cc7657f04"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"b5eed1bdc6ffa311ed24f6eab7d27ac4cbbe0d69","unresolved":true,"context_lines":[{"line_number":313,"context_line":""},{"line_number":314,"context_line":"Description of the above port options:"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"* ``erspan_idx`` is a in hex, and it is the index field in ERSPAN header."},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"* ``erspan_ver`` is the version, for version 1 erspan it is 1."},{"line_number":319,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1eb54663_fe99142d","line":316,"updated":"2023-05-23 09:31:34.000000000","message":"I have read a bit of the the erspan draft, and the way I understand it, the Index field can carry information of which switch port the traffic originated from and in which direction it was going. The draft seems to usually refer to \u0027Port ID/Index\u0027 and it also says this:\n\n\u003e   Index          [47:4]      20      A 20 bit index/port number \n\u003e                                      associated with the ERSPAN \n\u003e                                      traffic\u0027s port and  \n\u003e                                      direction (ingress/egress). N.B.:  \n\u003e                                      This field is platform dependent.\n\nSince this spec currently allows mirroring from only one port per erspan ID and enforces the use of one erspan ID per direction (due to ovn limitations) all information in the Index is already encoded in the erspan ID.\n\n(Based on this, the ovn limitation seems particularly weird. I hope we\u0027re not misunderstanding what\u0027s allowed.)\n\nFrom taas perspective we could say, that the Index field\u0027s content is currently undefined and we define it later (if ever) when ovn allows us to set it separately from the tunnel ID.","commit_id":"5e778f4f24ee37b305b285c72ae6640cc7657f04"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"b5eed1bdc6ffa311ed24f6eab7d27ac4cbbe0d69","unresolved":true,"context_lines":[{"line_number":317,"context_line":""},{"line_number":318,"context_line":"* ``erspan_ver`` is the version, for version 1 erspan it is 1."},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"* ``key`` is SpanID or Session ID field in the ERSPAN header."},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"Example packet headers from Wireshark::"},{"line_number":323,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1d116758_61d8b290","line":320,"updated":"2023-05-23 09:31:34.000000000","message":"This seems to be the tunnel ID.","commit_id":"5e778f4f24ee37b305b285c72ae6640cc7657f04"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"b5eed1bdc6ffa311ed24f6eab7d27ac4cbbe0d69","unresolved":true,"context_lines":[{"line_number":445,"context_line":""},{"line_number":446,"context_line":"* Create a new ERSPAN only OVN tap-as-a-service driver."},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"* Adopt the documentation."},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"* Implement the necessary tests."},{"line_number":451,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"b5f5aec0_bec52a24","line":448,"range":{"start_line":448,"start_character":2,"end_line":448,"end_character":7},"updated":"2023-05-23 09:31:34.000000000","message":"nit: adapt","commit_id":"5e778f4f24ee37b305b285c72ae6640cc7657f04"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"b5eed1bdc6ffa311ed24f6eab7d27ac4cbbe0d69","unresolved":true,"context_lines":[{"line_number":451,"context_line":""},{"line_number":452,"context_line":"  * end-to-end test in tempest can be done using Floating IPs."},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"* Adopt OpenstackSDK and the necessary CLI code."},{"line_number":455,"context_line":""},{"line_number":456,"context_line":"* Adopt Heat to make it possible to create ERSPAN mirrors."},{"line_number":457,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"6b8416a5_cd3f5d89","line":454,"range":{"start_line":454,"start_character":2,"end_line":454,"end_character":7},"updated":"2023-05-23 09:31:34.000000000","message":"nit: adapt","commit_id":"5e778f4f24ee37b305b285c72ae6640cc7657f04"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"b5eed1bdc6ffa311ed24f6eab7d27ac4cbbe0d69","unresolved":true,"context_lines":[{"line_number":453,"context_line":""},{"line_number":454,"context_line":"* Adopt OpenstackSDK and the necessary CLI code."},{"line_number":455,"context_line":""},{"line_number":456,"context_line":"* Adopt Heat to make it possible to create ERSPAN mirrors."},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"References"},{"line_number":459,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"19ae8a26_54761cb2","line":456,"range":{"start_line":456,"start_character":2,"end_line":456,"end_character":7},"updated":"2023-05-23 09:31:34.000000000","message":"nit: adapt","commit_id":"5e778f4f24ee37b305b285c72ae6640cc7657f04"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"9d7ffbf416aa9044d29ecaa707986b5502bf324f","unresolved":true,"context_lines":[{"line_number":56,"context_line":"This mirroring model is mirroring traffic from one Neutron port to another"},{"line_number":57,"context_line":"Neutron port over a Neutron network."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"The operator needs to mirror traffic from the cloud (from Neutron ports) to"},{"line_number":60,"context_line":"an analyser outside of the cloud."},{"line_number":61,"context_line":"An ERSPAN or GRE mirror is a good solution for such need."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Use Cases"},{"line_number":64,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"2b3ba6f9_59d7d224","line":61,"range":{"start_line":59,"start_character":0,"end_line":61,"end_character":57},"updated":"2023-05-26 21:38:14.000000000","message":"I think that what you tried to say here is:\n\n\"An ERSPAN or GRE mirror is a good solution when an operator needs to mirror traffic from the cloud (from Neutron ports) to an analyser outside the cloud\"","commit_id":"ae61011b71eacc53edfb6cec12b5508800279205"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"601f8e26256e7d5a62ea3744c30b6c5140a3e0b7","unresolved":true,"context_lines":[{"line_number":56,"context_line":"This mirroring model is mirroring traffic from one Neutron port to another"},{"line_number":57,"context_line":"Neutron port over a Neutron network."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"The operator needs to mirror traffic from the cloud (from Neutron ports) to"},{"line_number":60,"context_line":"an analyser outside of the cloud."},{"line_number":61,"context_line":"An ERSPAN or GRE mirror is a good solution for such need."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Use Cases"},{"line_number":64,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"862bcac4_2cc902c4","line":61,"range":{"start_line":59,"start_character":0,"end_line":61,"end_character":57},"in_reply_to":"2b3ba6f9_59d7d224","updated":"2023-05-30 13:46:41.000000000","message":"thanks","commit_id":"ae61011b71eacc53edfb6cec12b5508800279205"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"9d7ffbf416aa9044d29ecaa707986b5502bf324f","unresolved":true,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    Mirroring only works for traffic which is allowed by security-groups."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"In case of the ERSPAN or GRE tunnel based implementation of OVS and OVN the"},{"line_number":136,"context_line":"source is a bridge port (in case of OVS) or a logical switch port"},{"line_number":137,"context_line":"(in case of OVN) and the destination is represented by only an IP address,"},{"line_number":138,"context_line":"the above API model is not useful."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"The proposal is to introduce a new high level API for ERSPAN or GRE mirroring:"},{"line_number":141,"context_line":"``tap_mirror``."}],"source_content_type":"text/x-rst","patch_set":6,"id":"a972e361_e7aef623","line":138,"range":{"start_line":135,"start_character":0,"end_line":138,"end_character":34},"updated":"2023-05-26 21:38:14.000000000","message":"The following would be much clearer:\n\nThe above API model is not useful when the intent is to implement mirroring using ERSPAN or GRE tunnels, because the traffic source is a bridge port (in the case of OVS) or a logical switch port (in the case of OVN) and the destination is represented only by an IP address.","commit_id":"ae61011b71eacc53edfb6cec12b5508800279205"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"601f8e26256e7d5a62ea3744c30b6c5140a3e0b7","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    Mirroring only works for traffic which is allowed by security-groups."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"In case of the ERSPAN or GRE tunnel based implementation of OVS and OVN the"},{"line_number":136,"context_line":"source is a bridge port (in case of OVS) or a logical switch port"},{"line_number":137,"context_line":"(in case of OVN) and the destination is represented by only an IP address,"},{"line_number":138,"context_line":"the above API model is not useful."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"The proposal is to introduce a new high level API for ERSPAN or GRE mirroring:"},{"line_number":141,"context_line":"``tap_mirror``."}],"source_content_type":"text/x-rst","patch_set":6,"id":"a8fbbab3_c085020e","line":138,"range":{"start_line":135,"start_character":0,"end_line":138,"end_character":34},"in_reply_to":"a972e361_e7aef623","updated":"2023-05-30 13:46:41.000000000","message":"Done","commit_id":"ae61011b71eacc53edfb6cec12b5508800279205"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"9d7ffbf416aa9044d29ecaa707986b5502bf324f","unresolved":true,"context_lines":[{"line_number":212,"context_line":".. note::"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    Both GRE and ERSPAN handle the fragmentation, so if the mirrored traffic\u0027s"},{"line_number":215,"context_line":"    packet size with the extra headers bigger than the MTU on the interface,"},{"line_number":216,"context_line":"    the packet in the tunnel will be sent fragmented."},{"line_number":217,"context_line":""},{"line_number":218,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":6,"id":"6248e57d_16a7dc4b","line":215,"range":{"start_line":215,"start_character":39,"end_line":215,"end_character":45},"updated":"2023-05-26 21:38:14.000000000","message":"is bigger","commit_id":"ae61011b71eacc53edfb6cec12b5508800279205"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"601f8e26256e7d5a62ea3744c30b6c5140a3e0b7","unresolved":false,"context_lines":[{"line_number":212,"context_line":".. note::"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    Both GRE and ERSPAN handle the fragmentation, so if the mirrored traffic\u0027s"},{"line_number":215,"context_line":"    packet size with the extra headers bigger than the MTU on the interface,"},{"line_number":216,"context_line":"    the packet in the tunnel will be sent fragmented."},{"line_number":217,"context_line":""},{"line_number":218,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":6,"id":"142456c8_3f6514e6","line":215,"range":{"start_line":215,"start_character":39,"end_line":215,"end_character":45},"in_reply_to":"6248e57d_16a7dc4b","updated":"2023-05-30 13:46:41.000000000","message":"Done","commit_id":"ae61011b71eacc53edfb6cec12b5508800279205"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"9d7ffbf416aa9044d29ecaa707986b5502bf324f","unresolved":true,"context_lines":[{"line_number":290,"context_line":"OVN driver for mirroring"},{"line_number":291,"context_line":"------------------------"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"OVN creates only version 1 type of ERSPAN ports, end-to-end from API call to"},{"line_number":294,"context_line":"backend changes this will look something like this (Using GRE is very similar,"},{"line_number":295,"context_line":"the OVN mirror\u0027s type will be gre, and the OVS port type will be gre)::"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    $ # REST API operation"},{"line_number":298,"context_line":"    $ curl -g -i -X POST http://\u003chost_ip:9696\u003e/networking/v2.0/taas/tap_mirrors \\"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7fa4bec6_05c15714","line":295,"range":{"start_line":293,"start_character":0,"end_line":295,"end_character":69},"updated":"2023-05-26 21:38:14.000000000","message":"This would be much clearer:\n\nThe following shows the API call to create a tap_mirror based on version 1 ERSPAN and the corresponding backend changes:\n\nAnd then, after the example, I suggest adding a note with:\n\nUsing GRE is very similar: the OVN mirror type will be GRE and the OVS port type will be GRE","commit_id":"ae61011b71eacc53edfb6cec12b5508800279205"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"601f8e26256e7d5a62ea3744c30b6c5140a3e0b7","unresolved":false,"context_lines":[{"line_number":290,"context_line":"OVN driver for mirroring"},{"line_number":291,"context_line":"------------------------"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"OVN creates only version 1 type of ERSPAN ports, end-to-end from API call to"},{"line_number":294,"context_line":"backend changes this will look something like this (Using GRE is very similar,"},{"line_number":295,"context_line":"the OVN mirror\u0027s type will be gre, and the OVS port type will be gre)::"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    $ # REST API operation"},{"line_number":298,"context_line":"    $ curl -g -i -X POST http://\u003chost_ip:9696\u003e/networking/v2.0/taas/tap_mirrors \\"}],"source_content_type":"text/x-rst","patch_set":6,"id":"c8924bd7_5e1882df","line":295,"range":{"start_line":293,"start_character":0,"end_line":295,"end_character":69},"in_reply_to":"7fa4bec6_05c15714","updated":"2023-05-30 13:46:41.000000000","message":"Done","commit_id":"ae61011b71eacc53edfb6cec12b5508800279205"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"9d7ffbf416aa9044d29ecaa707986b5502bf324f","unresolved":true,"context_lines":[{"line_number":326,"context_line":""},{"line_number":327,"context_line":".. note::"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    Due to the OVN limitation, that erspan_idx and key can\u0027t be set"},{"line_number":330,"context_line":"    separately, TAAS will not set erspan_idx, and use the same pattern in"},{"line_number":331,"context_line":"    case of OVS driver also (so key and erspan_idx are set to the same value)."},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"Example packet headers from Wireshark::"},{"line_number":334,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"6dd72a48_90fac0d2","line":331,"range":{"start_line":329,"start_character":4,"end_line":331,"end_character":77},"updated":"2023-05-26 21:38:14.000000000","message":"It\u0027s unclear what you tried to said here. Maybe, using Bence\u0027s comment to line 321, we can clarify this note","commit_id":"ae61011b71eacc53edfb6cec12b5508800279205"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"601f8e26256e7d5a62ea3744c30b6c5140a3e0b7","unresolved":true,"context_lines":[{"line_number":326,"context_line":""},{"line_number":327,"context_line":".. note::"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    Due to the OVN limitation, that erspan_idx and key can\u0027t be set"},{"line_number":330,"context_line":"    separately, TAAS will not set erspan_idx, and use the same pattern in"},{"line_number":331,"context_line":"    case of OVS driver also (so key and erspan_idx are set to the same value)."},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"Example packet headers from Wireshark::"},{"line_number":334,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"957dc05c_5bf2eb01","line":331,"range":{"start_line":329,"start_character":4,"end_line":331,"end_character":77},"in_reply_to":"6dd72a48_90fac0d2","updated":"2023-05-30 13:46:41.000000000","message":"I hope I made it much cleaner, now, thanks Bence and Miguel for checking it.","commit_id":"ae61011b71eacc53edfb6cec12b5508800279205"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"9d7ffbf416aa9044d29ecaa707986b5502bf324f","unresolved":true,"context_lines":[{"line_number":402,"context_line":"       ..."},{"line_number":403,"context_line":"       ... priority\u003d20,dl_dst\u003dfa:16:3e:d3:3a:d1 actions\u003doutput:\"mirror_in_ed6046d\""},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"For details on what the port properties ``key``, ``erspan_idx`` are meaning, see"},{"line_number":406,"context_line":"`OVN driver for mirroring`_ ."},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"For the details on how the case will be handled when both ``IN`` and ``OUT``"}],"source_content_type":"text/x-rst","patch_set":6,"id":"23977582_0bac7788","line":405,"range":{"start_line":405,"start_character":64,"end_line":405,"end_character":75},"updated":"2023-05-26 21:38:14.000000000","message":"mean","commit_id":"ae61011b71eacc53edfb6cec12b5508800279205"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"601f8e26256e7d5a62ea3744c30b6c5140a3e0b7","unresolved":false,"context_lines":[{"line_number":402,"context_line":"       ..."},{"line_number":403,"context_line":"       ... priority\u003d20,dl_dst\u003dfa:16:3e:d3:3a:d1 actions\u003doutput:\"mirror_in_ed6046d\""},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"For details on what the port properties ``key``, ``erspan_idx`` are meaning, see"},{"line_number":406,"context_line":"`OVN driver for mirroring`_ ."},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"For the details on how the case will be handled when both ``IN`` and ``OUT``"}],"source_content_type":"text/x-rst","patch_set":6,"id":"af52ff69_35a51627","line":405,"range":{"start_line":405,"start_character":64,"end_line":405,"end_character":75},"in_reply_to":"23977582_0bac7788","updated":"2023-05-30 13:46:41.000000000","message":"Done","commit_id":"ae61011b71eacc53edfb6cec12b5508800279205"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"9d7ffbf416aa9044d29ecaa707986b5502bf324f","unresolved":true,"context_lines":[{"line_number":431,"context_line":"implement only ERSPAN."},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"To make OVN driver fully feature compatible with the current OVS or SRIOV"},{"line_number":434,"context_line":"driver can be part of a coming specification."},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"Implementation"},{"line_number":437,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"a9aa2528_22e7b1c1","line":434,"range":{"start_line":434,"start_character":23,"end_line":434,"end_character":31},"updated":"2023-05-26 21:38:14.000000000","message":"future","commit_id":"ae61011b71eacc53edfb6cec12b5508800279205"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"601f8e26256e7d5a62ea3744c30b6c5140a3e0b7","unresolved":false,"context_lines":[{"line_number":431,"context_line":"implement only ERSPAN."},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"To make OVN driver fully feature compatible with the current OVS or SRIOV"},{"line_number":434,"context_line":"driver can be part of a coming specification."},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"Implementation"},{"line_number":437,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"8ee67ccb_debb7121","line":434,"range":{"start_line":434,"start_character":23,"end_line":434,"end_character":31},"in_reply_to":"a9aa2528_22e7b1c1","updated":"2023-05-30 13:46:41.000000000","message":"Done","commit_id":"ae61011b71eacc53edfb6cec12b5508800279205"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"62fce060ae98914b7fbed0ab6a2f1892e0d89c8a","unresolved":true,"context_lines":[{"line_number":47,"context_line":"Mirroring traffic can be useful in many situations for operators, for example"},{"line_number":48,"context_line":"to debug network issues."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Tap-as-a-service provided a solution for traffic mirroring by allowing to"},{"line_number":51,"context_line":"create tap-flows and mirror the traffic of them to the related tap-service."},{"line_number":52,"context_line":"Each tap-flow and tap-service can be attached to a Neutron port, so the port"},{"line_number":53,"context_line":"attached to tap-flow is the source of the mirrored traffic and the port of"}],"source_content_type":"text/x-rst","patch_set":7,"id":"813489cb_00ab14a0","line":50,"range":{"start_line":50,"start_character":17,"end_line":50,"end_character":25},"updated":"2023-06-01 10:51:26.000000000","message":"nitty nit: I think it should be \"provides\"","commit_id":"de2ee265faa6bac9d8ae168293dd8cc47c8a9ccc"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"62fce060ae98914b7fbed0ab6a2f1892e0d89c8a","unresolved":true,"context_lines":[{"line_number":142,"context_line":"This solution keeps the current API clean and not overloaded, and makes it"},{"line_number":143,"context_line":"easier for operators to expect the right behaviour after API operations."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"The proposed API is ``admin only``, to avoid the overloading of infrastructure"},{"line_number":146,"context_line":"networks by tenants."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"The suggested API request:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"f02a80fd_e26c679a","line":145,"range":{"start_line":145,"start_character":20,"end_line":145,"end_character":34},"updated":"2023-06-01 10:51:26.000000000","message":"I would say \"admin_only\" by default as it should be defined in the API policies so operator can customize it if he wants. But that\u0027s minor thing and I\u0027m fine with the wording as it\u0027s now.","commit_id":"de2ee265faa6bac9d8ae168293dd8cc47c8a9ccc"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"2db351bfb61a76795edf3c060a93d942584ccff5","unresolved":true,"context_lines":[{"line_number":178,"context_line":"    source and destination. Multiple source ports\u0027 traffic can be mirrored to"},{"line_number":179,"context_line":"    one destination IP."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"* ``mirror_type`` field is to select between ERSPAN and GRE."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"* ``directions`` is a dictionary with `direction:tunnel_id` pairs."},{"line_number":184,"context_line":"  The current tap-as-a-service API allows the operator to select the direction"}],"source_content_type":"text/x-rst","patch_set":7,"id":"05e228db_8c8e304f","line":181,"range":{"start_line":181,"start_character":45,"end_line":181,"end_character":51},"updated":"2023-06-01 12:07:48.000000000","message":"Here we could also specify the ERSPAN version just like in L162.","commit_id":"de2ee265faa6bac9d8ae168293dd8cc47c8a9ccc"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"62fce060ae98914b7fbed0ab6a2f1892e0d89c8a","unresolved":true,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":"  The `tunnel_id` will be the value of the ``directions`` dictionary, this is"},{"line_number":196,"context_line":"  the identifier of the ERSPAN or GRE session between the source and"},{"line_number":197,"context_line":"  destination."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":".. note::"},{"line_number":200,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"c03f3ddf_247d5d44","line":197,"updated":"2023-06-01 10:51:26.000000000","message":"is it require to set always directions and tunnel ids? Or can it be set automatically by default?","commit_id":"de2ee265faa6bac9d8ae168293dd8cc47c8a9ccc"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"2db351bfb61a76795edf3c060a93d942584ccff5","unresolved":true,"context_lines":[{"line_number":224,"context_line":""},{"line_number":225,"context_line":"The proposed API definition::"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    mirror_types_list \u003d [\u0027erspan\u0027, \u0027gre\u0027]"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":230,"context_line":"        \u0027tap_mirror\u0027: {"}],"source_content_type":"text/x-rst","patch_set":7,"id":"51e128fc_f2157b8e","line":227,"range":{"start_line":227,"start_character":26,"end_line":227,"end_character":32},"updated":"2023-06-01 12:07:48.000000000","message":"As above: erspan-v1","commit_id":"de2ee265faa6bac9d8ae168293dd8cc47c8a9ccc"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"62fce060ae98914b7fbed0ab6a2f1892e0d89c8a","unresolved":true,"context_lines":[{"line_number":278,"context_line":"            sa.Column(\u0027description\u0027, sa.String("},{"line_number":279,"context_line":"                      length\u003ddb_const.DESCRIPTION_FIELD_SIZE), nullable\u003dTrue),"},{"line_number":280,"context_line":"            sa.Column(\u0027port_id\u0027, sa.String(db_const.UUID_FIELD_SIZE),"},{"line_number":281,"context_line":"                      nullable\u003dFalse, unique\u003dTrue),"},{"line_number":282,"context_line":"            sa.Column(\u0027directions\u0027, sa.String(255), nullable\u003dFalse),"},{"line_number":283,"context_line":"            sa.Column(\u0027remote_ip\u0027, sa.String(db_const.IP_ADDR_FIELD_SIZE)),"},{"line_number":284,"context_line":"            sa.Column(\u0027mirror_type\u0027, mirror_type_enum, nullable\u003dFalse)"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bc7574c0_3c93ecf6","line":281,"updated":"2023-06-01 10:51:26.000000000","message":"this will be foreign key, right?","commit_id":"de2ee265faa6bac9d8ae168293dd8cc47c8a9ccc"}]}
