)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"54a31815c6176cc14481fe5891eac76f0809fb4f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP: openswitch Openflow pipeline extensibility"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Closes-Bug: #1577791"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I6d8b3043516ab8ae11411632517d9d4a7b42fb98"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dab17558_47780e90","line":9,"updated":"2016-05-12 18:13:01.000000000","message":"Can you conser using Related-bug instead?\n\nThis hardly closes the bug doesn\u0027t it? :)","commit_id":"6c2d9fda5c87d3dd9e91d3b723fd2493e76c1d6b"}],"doc/source/devref/openvswitch_agent.rst":[{"author":{"_account_id":11907,"name":"cathy","email":"cathy.h.zhang@huawei.com","username":"cathy"},"change_message_id":"5017a00384935a3ef86331dc7a4e0226b4ce488e","unresolved":false,"context_lines":[{"line_number":108,"context_line":"In order to make extensions optional, pluggable and interoperable in the"},{"line_number":109,"context_line":"context of OpenFlow rules, register and metadata usage."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"The pipeline is divided in two paths, from the instance port point of view:"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"* Egress path"},{"line_number":114,"context_line":"* Ingress path  "}],"source_content_type":"text/x-rst","patch_set":1,"id":"dab17558_b79a396c","line":111,"updated":"2016-05-10 22:52:59.000000000","message":"Does ingress mean from VM to the OVS?","commit_id":"6c2d9fda5c87d3dd9e91d3b723fd2493e76c1d6b"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"34d02e8c9c4dd044e9eae70d5f44f71c8f78f007","unresolved":false,"context_lines":[{"line_number":108,"context_line":"In order to make extensions optional, pluggable and interoperable in the"},{"line_number":109,"context_line":"context of OpenFlow rules, register and metadata usage."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"The pipeline is divided in two paths, from the instance port point of view:"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"* Egress path"},{"line_number":114,"context_line":"* Ingress path  "}],"source_content_type":"text/x-rst","patch_set":1,"id":"dab17558_914cc69e","line":111,"in_reply_to":"dab17558_b79a396c","updated":"2016-05-13 14:52:15.000000000","message":"I should probably say \"from the instance point of view\", with no \"port\" mention.\n\nThanks.","commit_id":"6c2d9fda5c87d3dd9e91d3b723fd2493e76c1d6b"},{"author":{"_account_id":11907,"name":"cathy","email":"cathy.h.zhang@huawei.com","username":"cathy"},"change_message_id":"89190200ace0118ce09931748f0cd1925df0b42c","unresolved":false,"context_lines":[{"line_number":136,"context_line":"  packet details. In a future, we could get rid of all NORMAL rules, making "},{"line_number":137,"context_line":"  this way possible transparent vlan and port trunking as extension."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"The pipeline looks like this::"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"                            +----------+  +-------------+"},{"line_number":142,"context_line":"                            |br int    |  |   br xxx    |"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dab17558_cf4a50ac","line":139,"updated":"2016-05-12 20:25:12.000000000","message":"In the \"solution\" section of the bug description, you mentioned processing pipeline (ingress prefiltering, ingress postfiltering, egress prefiltering, egress postfiltering). Could you clarify how to map this  diagram and stages to the processing pipeline stage described in the \"solution\" section of the bug. For networking-sfc, we add processing for SFC in the ingress postfiltering stage assuming we are in sync w.r.t. what is meant by ingress postfiltering stage.","commit_id":"6c2d9fda5c87d3dd9e91d3b723fd2493e76c1d6b"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"34d02e8c9c4dd044e9eae70d5f44f71c8f78f007","unresolved":false,"context_lines":[{"line_number":136,"context_line":"  packet details. In a future, we could get rid of all NORMAL rules, making "},{"line_number":137,"context_line":"  this way possible transparent vlan and port trunking as extension."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"The pipeline looks like this::"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"                            +----------+  +-------------+"},{"line_number":142,"context_line":"                            |br int    |  |   br xxx    |"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dab17558_1120d6af","line":139,"in_reply_to":"dab17558_cf4a50ac","updated":"2016-05-13 14:52:15.000000000","message":"I have dropped that bug in favour of another David has filled, and moved the strategy to something more dynamic (config based), as slaweq suggested.\n\nThank you Cathy, that was unclear in this first version.","commit_id":"6c2d9fda5c87d3dd9e91d3b723fd2493e76c1d6b"},{"author":{"_account_id":11907,"name":"cathy","email":"cathy.h.zhang@huawei.com","username":"cathy"},"change_message_id":"5017a00384935a3ef86331dc7a4e0226b4ce488e","unresolved":false,"context_lines":[{"line_number":162,"context_line":"          |                 |  ^                 |"},{"line_number":163,"context_line":"          +-----------+-----+ /+--------^--------+"},{"line_number":164,"context_line":"                      |      /          |"},{"line_number":165,"context_line":"        127-----------v-----+ 0+--------+--------+"},{"line_number":166,"context_line":"          |ingress deflector|  |  input tagging  |"},{"line_number":167,"context_line":"          +----------+------+  +^--------^-------+"},{"line_number":168,"context_line":"                     |          |        |"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dab17558_976f352a","line":165,"updated":"2016-05-10 22:52:59.000000000","message":"What does this slanted line indicate","commit_id":"6c2d9fda5c87d3dd9e91d3b723fd2493e76c1d6b"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b0674734eec2389d28db85f32f35dbe1837b5361","unresolved":false,"context_lines":[{"line_number":174,"context_line":"                     | br int  |  |br xxx  |"},{"line_number":175,"context_line":"                     +---------+  +--------+"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"Further Reading"},{"line_number":180,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dab17558_29d36161","line":177,"updated":"2016-05-11 16:24:53.000000000","message":"Maybe I understood incorrectly the graph. Are those stages in the pipeline outside the integration bridge?\na) If those stages are out from br-int, where are going to be \nb) In the other case, maybe a modification of the graph should be needed.\n\nI think everybody knows there is an open discussion about the future architecture of OVS: https://review.openstack.org/#/c/273954/7/doc/source/devref/openvswitch_agent.rst. We need to follow this closely, because this feature depends completely on the architecture proposed.\n\nThe solution proposed by Sean Mooney (https://review.openstack.org/#/c/273954/7/doc/source/devref/openvswitch_agent.rst@213) can help us to implement this:\n* The firewall rules can be implemented in the port bridges.\n* QoS rules can be applied also in the port bridges. \n* DSCP marking can be implemented in br-int.","commit_id":"6c2d9fda5c87d3dd9e91d3b723fd2493e76c1d6b"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"df885ccfc53a624a9306810e1aa04b86b42dddfd","unresolved":false,"context_lines":[{"line_number":94,"context_line":"the integration bridge with the physical network bridge, with flow"},{"line_number":95,"context_line":"rules adding, modifying, or stripping VLAN tags as necessary, thus"},{"line_number":96,"context_line":"preserving backward compatibility with the way the OVS agent used"},{"line_number":97,"context_line":"to work prior to the tunneling capability (for more details,  lease"},{"line_number":98,"context_line":"look at https://review.openstack.org/#/c/4367)."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Bear in mind, that this design decision may be overhauled in the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_94582f58","line":97,"updated":"2016-05-13 16:31:34.000000000","message":"nit: s/lease/please","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"7e257103042285a13d52dc3eaf477eabdd6350e2","unresolved":false,"context_lines":[{"line_number":94,"context_line":"the integration bridge with the physical network bridge, with flow"},{"line_number":95,"context_line":"rules adding, modifying, or stripping VLAN tags as necessary, thus"},{"line_number":96,"context_line":"preserving backward compatibility with the way the OVS agent used"},{"line_number":97,"context_line":"to work prior to the tunneling capability (for more details,  lease"},{"line_number":98,"context_line":"look at https://review.openstack.org/#/c/4367)."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Bear in mind, that this design decision may be overhauled in the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_3b458242","line":97,"in_reply_to":"dab17558_94582f58","updated":"2016-05-17 08:18:17.000000000","message":"Thanks.","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"7373a842128bb08926f466f98068e401548ad452","unresolved":false,"context_lines":[{"line_number":106,"context_line":"----------------------------"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"In order to make extensions optional, pluggable and interoperable in the"},{"line_number":109,"context_line":"context of OpenFlow rules we define a pipeline model, and a l2 extension"},{"line_number":110,"context_line":"API interface to let extensions:"},{"line_number":111,"context_line":"* declare funtions"},{"line_number":112,"context_line":"* allocate registers"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_906dd79a","line":109,"range":{"start_line":109,"start_character":26,"end_line":109,"end_character":35},"updated":"2016-05-19 14:14:01.000000000","message":"nit: s/we define/we need to define\nUnless this is meant to be written in the present tense?","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"336aa3db23b6e2ca24b85df9179fa41a10a953dd","unresolved":false,"context_lines":[{"line_number":106,"context_line":"----------------------------"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"In order to make extensions optional, pluggable and interoperable in the"},{"line_number":109,"context_line":"context of OpenFlow rules we define a pipeline model, and a l2 extension"},{"line_number":110,"context_line":"API interface to let extensions:"},{"line_number":111,"context_line":"* declare funtions"},{"line_number":112,"context_line":"* allocate registers"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_7325135b","line":109,"range":{"start_line":109,"start_character":26,"end_line":109,"end_character":35},"in_reply_to":"bab6814e_906dd79a","updated":"2016-05-24 13:13:56.000000000","message":"In this case, it\u0027s a devref, and not a spec, so it\u0027s a present tense (we assume this is the documentation of a developed feature), but moving to a spec I\u0027m changing it.","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"df885ccfc53a624a9306810e1aa04b86b42dddfd","unresolved":false,"context_lines":[{"line_number":108,"context_line":"In order to make extensions optional, pluggable and interoperable in the"},{"line_number":109,"context_line":"context of OpenFlow rules we define a pipeline model, and a l2 extension"},{"line_number":110,"context_line":"API interface to let extensions:"},{"line_number":111,"context_line":"* declare funtions"},{"line_number":112,"context_line":"* allocate registers"},{"line_number":113,"context_line":"* find named registers"},{"line_number":114,"context_line":"* find other functions"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_54f9a7c7","line":111,"updated":"2016-05-13 16:31:34.000000000","message":"nit: s/funtions/functions","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"7e257103042285a13d52dc3eaf477eabdd6350e2","unresolved":false,"context_lines":[{"line_number":108,"context_line":"In order to make extensions optional, pluggable and interoperable in the"},{"line_number":109,"context_line":"context of OpenFlow rules we define a pipeline model, and a l2 extension"},{"line_number":110,"context_line":"API interface to let extensions:"},{"line_number":111,"context_line":"* declare funtions"},{"line_number":112,"context_line":"* allocate registers"},{"line_number":113,"context_line":"* find named registers"},{"line_number":114,"context_line":"* find other functions"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_9b762ea2","line":111,"in_reply_to":"dab17558_54f9a7c7","updated":"2016-05-17 08:18:17.000000000","message":"Thanks.","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"336aa3db23b6e2ca24b85df9179fa41a10a953dd","unresolved":false,"context_lines":[{"line_number":108,"context_line":"In order to make extensions optional, pluggable and interoperable in the"},{"line_number":109,"context_line":"context of OpenFlow rules we define a pipeline model, and a l2 extension"},{"line_number":110,"context_line":"API interface to let extensions:"},{"line_number":111,"context_line":"* declare funtions"},{"line_number":112,"context_line":"* allocate registers"},{"line_number":113,"context_line":"* find named registers"},{"line_number":114,"context_line":"* find other functions"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_931cf714","line":111,"in_reply_to":"dab17558_9b762ea2","updated":"2016-05-24 13:13:56.000000000","message":"Done","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"bf2e331fba37e852db1dcc6b4fe69c170f0e720f","unresolved":false,"context_lines":[{"line_number":130,"context_line":"                   | TAP a \u003c--------+ |    |  +----\u003eTAP b  |"},{"line_number":131,"context_line":"                   +--+----+        | |    |  |    +-------+"},{"line_number":132,"context_line":"                      |             | |    |  |"},{"line_number":133,"context_line":"         0+-----------v-----+ 255+--+-+----+--+--+"},{"line_number":134,"context_line":"          | input tagging   |  +  output_stage   |"},{"line_number":135,"context_line":"          +-----------+-----+  +--------^--------+"},{"line_number":136,"context_line":"                      |                 |"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_fb4a1125","line":133,"range":{"start_line":133,"start_character":30,"end_line":133,"end_character":33},"updated":"2016-05-20 09:14:14.000000000","message":"Max number is 254","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"336aa3db23b6e2ca24b85df9179fa41a10a953dd","unresolved":false,"context_lines":[{"line_number":130,"context_line":"                   | TAP a \u003c--------+ |    |  +----\u003eTAP b  |"},{"line_number":131,"context_line":"                   +--+----+        | |    |  |    +-------+"},{"line_number":132,"context_line":"                      |             | |    |  |"},{"line_number":133,"context_line":"         0+-----------v-----+ 255+--+-+----+--+--+"},{"line_number":134,"context_line":"          | input tagging   |  +  output_stage   |"},{"line_number":135,"context_line":"          +-----------+-----+  +--------^--------+"},{"line_number":136,"context_line":"                      |                 |"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_33d26b35","line":133,"range":{"start_line":133,"start_character":30,"end_line":133,"end_character":33},"in_reply_to":"bab6814e_fb4a1125","updated":"2016-05-24 13:13:56.000000000","message":"Done","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"bf2e331fba37e852db1dcc6b4fe69c170f0e720f","unresolved":false,"context_lines":[{"line_number":151,"context_line":"          |ingress deflector|  |  input tagging  |"},{"line_number":152,"context_line":"          +----------+------+  +^--------^-------+"},{"line_number":153,"context_line":"                     |          |        |"},{"line_number":154,"context_line":"         255+--------v------+   |        |"},{"line_number":155,"context_line":"          |  output_stage   +------+     |"},{"line_number":156,"context_line":"          +-----------+-----+   |  |     |"},{"line_number":157,"context_line":"                      |         |  |     |"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_bb44091b","line":154,"range":{"start_line":154,"start_character":9,"end_line":154,"end_character":12},"updated":"2016-05-20 09:14:14.000000000","message":"ditto","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"df885ccfc53a624a9306810e1aa04b86b42dddfd","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                      |         |  |     |"},{"line_number":158,"context_line":"                     +v--------++ +v-----+-+"},{"line_number":159,"context_line":"                     | br int  |  |br xxx  |"},{"line_number":160,"context_line":"                     +---------+  +--------+"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Functional blocks"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_94814f92","line":160,"updated":"2016-05-13 16:31:34.000000000","message":"maybe I misunderstood something but as I understand all those blocks will be in fact tables with openflow rules, right?\nIf yes, in which bridge it will be created, in br-int? and then shouldn\u0027t be after \"output stage\" block br-ex or br-tun here?","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"ebcef8a5463337a5e519da04bb60bf505b790bc1","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                      |         |  |     |"},{"line_number":158,"context_line":"                     +v--------++ +v-----+-+"},{"line_number":159,"context_line":"                     | br int  |  |br xxx  |"},{"line_number":160,"context_line":"                     +---------+  +--------+"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Functional blocks"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_375a6884","line":160,"in_reply_to":"bab6814e_e1cf89b1","updated":"2016-05-19 12:23:26.000000000","message":"Another examples are l2pop or arpresponder, which are extensions touching br-tun, but, which are mixed in the agent code.\n\nl2pop \u0026 arp responder probably don\u0027t fully fit the current l2-extension interface, but they could be modelled this way so other features could be chained in those bridges as necessary (in some cases we will need that).\n\nMay be we should keep in mind that we want to tackle them all, but do baby steps, starting only by br-int, while keeping in mind that we want to tackle them all in a 2nd step.","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"7e257103042285a13d52dc3eaf477eabdd6350e2","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                      |         |  |     |"},{"line_number":158,"context_line":"                     +v--------++ +v-----+-+"},{"line_number":159,"context_line":"                     | br int  |  |br xxx  |"},{"line_number":160,"context_line":"                     +---------+  +--------+"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Functional blocks"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_db5556fa","line":160,"in_reply_to":"dab17558_94814f92","updated":"2016-05-17 08:18:17.000000000","message":"Yes, I was thinking of br-int, but you\u0027re right that may be we should also be able to declare functions on other bridges (like br-tun or br-ex) which other functions may need.","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e8b2bd8ded64b27a008267eab47dcb27747194f9","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                      |         |  |     |"},{"line_number":158,"context_line":"                     +v--------++ +v-----+-+"},{"line_number":159,"context_line":"                     | br int  |  |br xxx  |"},{"line_number":160,"context_line":"                     +---------+  +--------+"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Functional blocks"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_e1cf89b1","line":160,"in_reply_to":"dab17558_be6024d0","updated":"2016-05-18 08:59:26.000000000","message":"There is an updated version of this doc, with this proposal as the 3rd alternative: https://review.openstack.org/#/c/273954/10/doc/source/devref/openvswitch_agent.rst@220","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"c3070879f045160a58d754c0d143ae9a7c6a6dbf","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                      |         |  |     |"},{"line_number":158,"context_line":"                     +v--------++ +v-----+-+"},{"line_number":159,"context_line":"                     | br int  |  |br xxx  |"},{"line_number":160,"context_line":"                     +---------+  +--------+"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Functional blocks"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_be6024d0","line":160,"in_reply_to":"dab17558_db5556fa","updated":"2016-05-17 17:22:14.000000000","message":"On the point of having this on bridges other than br-int:\nThe comments on line 213 might of interest.\nhttps://review.openstack.org/#/c/273954/7/doc/source/devref/openvswitch_agent.rst","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"df885ccfc53a624a9306810e1aa04b86b42dddfd","unresolved":false,"context_lines":[{"line_number":168,"context_line":"* INPUT_TAGGING: Takes care of identifying the source or destination of the"},{"line_number":169,"context_line":"  packet, marks the network in a register, and sends the packet to the egress"},{"line_number":170,"context_line":"  or ingress path (with priority for egress path when both the source and"},{"line_number":171,"context_line":"  destination of the packet is local)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"* INGRESS_DEFLECTOR: For packets that ar both egress on the local hypervisor,"},{"line_number":174,"context_line":"  and ingress on the local hypervisor too, this stage is in charge of moving"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_5495273e","line":171,"updated":"2016-05-13 16:31:34.000000000","message":"just for curiosity: why egress has got priority in such case?","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"7e257103042285a13d52dc3eaf477eabdd6350e2","unresolved":false,"context_lines":[{"line_number":168,"context_line":"* INPUT_TAGGING: Takes care of identifying the source or destination of the"},{"line_number":169,"context_line":"  packet, marks the network in a register, and sends the packet to the egress"},{"line_number":170,"context_line":"  or ingress path (with priority for egress path when both the source and"},{"line_number":171,"context_line":"  destination of the packet is local)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"* INGRESS_DEFLECTOR: For packets that ar both egress on the local hypervisor,"},{"line_number":174,"context_line":"  and ingress on the local hypervisor too, this stage is in charge of moving"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_9b010e08","line":171,"in_reply_to":"dab17558_5495273e","updated":"2016-05-17 08:18:17.000000000","message":"Because when a packet arrives the switch you have two options.\n\n1) it came from outside, and goes to one of the br-int ports. (-\u003eingress)\n2) it came from br-int and goes to outside(egress -\u003e)\n3) it came from br-int and goes to br-int (egress -\u003e ingress), in that case, all the egress pipeline should happen before the packet could be processed by the ingress pipeline and eventually delivered.\n\nI guess I should probably elaborate that.","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"db09c2f5b5741feb104927cab21f1b84f10f99cc","unresolved":false,"context_lines":[{"line_number":168,"context_line":"* INPUT_TAGGING: Takes care of identifying the source or destination of the"},{"line_number":169,"context_line":"  packet, marks the network in a register, and sends the packet to the egress"},{"line_number":170,"context_line":"  or ingress path (with priority for egress path when both the source and"},{"line_number":171,"context_line":"  destination of the packet is local)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"* INGRESS_DEFLECTOR: For packets that ar both egress on the local hypervisor,"},{"line_number":174,"context_line":"  and ingress on the local hypervisor too, this stage is in charge of moving"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_a18658b6","line":171,"in_reply_to":"dab17558_9b010e08","updated":"2016-05-17 11:28:02.000000000","message":"Thanks for explanation :)","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":7776,"name":"Paul Carver","email":"pcarver@att.com","username":"pcarver"},"change_message_id":"ad61ba4f7d5ae32cb573e6c800535661121603ae","unresolved":false,"context_lines":[{"line_number":170,"context_line":"  or ingress path (with priority for egress path when both the source and"},{"line_number":171,"context_line":"  destination of the packet is local)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"* INGRESS_DEFLECTOR: For packets that ar both egress on the local hypervisor,"},{"line_number":174,"context_line":"  and ingress on the local hypervisor too, this stage is in charge of moving"},{"line_number":175,"context_line":"  packets from the end of the egress path, to the start of the ingress path,"},{"line_number":176,"context_line":"  so any ingress filtering or packet processing happens before the packet"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_e695c640","line":173,"range":{"start_line":173,"start_character":38,"end_line":173,"end_character":40},"updated":"2016-05-18 14:46:50.000000000","message":"ar -\u003e are","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"336aa3db23b6e2ca24b85df9179fa41a10a953dd","unresolved":false,"context_lines":[{"line_number":170,"context_line":"  or ingress path (with priority for egress path when both the source and"},{"line_number":171,"context_line":"  destination of the packet is local)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"* INGRESS_DEFLECTOR: For packets that ar both egress on the local hypervisor,"},{"line_number":174,"context_line":"  and ingress on the local hypervisor too, this stage is in charge of moving"},{"line_number":175,"context_line":"  packets from the end of the egress path, to the start of the ingress path,"},{"line_number":176,"context_line":"  so any ingress filtering or packet processing happens before the packet"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_f31f43b5","line":173,"range":{"start_line":173,"start_character":38,"end_line":173,"end_character":40},"in_reply_to":"bab6814e_e695c640","updated":"2016-05-24 13:13:56.000000000","message":"Done","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":7776,"name":"Paul Carver","email":"pcarver@att.com","username":"pcarver"},"change_message_id":"ad61ba4f7d5ae32cb573e6c800535661121603ae","unresolved":false,"context_lines":[{"line_number":182,"context_line":"  to overcome the iptables/ebtables limitations."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"* OUTPUT_STAGE: Goes after the ingress or egress path, the packet is directed"},{"line_number":185,"context_line":"  to it\u0027s destination port, or get\u0027s the NORMAL rule executed based on the"},{"line_number":186,"context_line":"  packet details. In a future, we could get rid of all NORMAL rules, making"},{"line_number":187,"context_line":"  this way possible transparent vlan and port trunking as extension."},{"line_number":188,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_06abaa75","line":185,"range":{"start_line":185,"start_character":31,"end_line":185,"end_character":34},"updated":"2016-05-18 14:46:50.000000000","message":"it\u0027s -\u003e its\nget\u0027s -\u003e gets","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"336aa3db23b6e2ca24b85df9179fa41a10a953dd","unresolved":false,"context_lines":[{"line_number":182,"context_line":"  to overcome the iptables/ebtables limitations."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"* OUTPUT_STAGE: Goes after the ingress or egress path, the packet is directed"},{"line_number":185,"context_line":"  to it\u0027s destination port, or get\u0027s the NORMAL rule executed based on the"},{"line_number":186,"context_line":"  packet details. In a future, we could get rid of all NORMAL rules, making"},{"line_number":187,"context_line":"  this way possible transparent vlan and port trunking as extension."},{"line_number":188,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_53ba8f6f","line":185,"range":{"start_line":185,"start_character":31,"end_line":185,"end_character":34},"in_reply_to":"bab6814e_06abaa75","updated":"2016-05-24 13:13:56.000000000","message":"Done. Thanks a lot.","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":7776,"name":"Paul Carver","email":"pcarver@att.com","username":"pcarver"},"change_message_id":"ad61ba4f7d5ae32cb573e6c800535661121603ae","unresolved":false,"context_lines":[{"line_number":183,"context_line":""},{"line_number":184,"context_line":"* OUTPUT_STAGE: Goes after the ingress or egress path, the packet is directed"},{"line_number":185,"context_line":"  to it\u0027s destination port, or get\u0027s the NORMAL rule executed based on the"},{"line_number":186,"context_line":"  packet details. In a future, we could get rid of all NORMAL rules, making"},{"line_number":187,"context_line":"  this way possible transparent vlan and port trunking as extension."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_26f34ea0","line":186,"range":{"start_line":186,"start_character":21,"end_line":186,"end_character":22},"updated":"2016-05-18 14:46:50.000000000","message":"nit: \"the future\" or \"a future revision\" unless you\u0027re talking about alternate reality timelines.","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"336aa3db23b6e2ca24b85df9179fa41a10a953dd","unresolved":false,"context_lines":[{"line_number":183,"context_line":""},{"line_number":184,"context_line":"* OUTPUT_STAGE: Goes after the ingress or egress path, the packet is directed"},{"line_number":185,"context_line":"  to it\u0027s destination port, or get\u0027s the NORMAL rule executed based on the"},{"line_number":186,"context_line":"  packet details. In a future, we could get rid of all NORMAL rules, making"},{"line_number":187,"context_line":"  this way possible transparent vlan and port trunking as extension."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_1335a7f6","line":186,"range":{"start_line":186,"start_character":21,"end_line":186,"end_character":22},"in_reply_to":"bab6814e_26f34ea0","updated":"2016-05-24 13:13:56.000000000","message":"Done","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":7776,"name":"Paul Carver","email":"pcarver@att.com","username":"pcarver"},"change_message_id":"ad61ba4f7d5ae32cb573e6c800535661121603ae","unresolved":false,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":"Every functional block can be composed of one or several openflow tables."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"Every functional block has an entry, and an at least one exit point (next),"},{"line_number":196,"context_line":"the entry and exit points of other functional blocks (specially the system provided"},{"line_number":197,"context_line":"ones) can be inspected and discovered by other functional blocks to compose"},{"line_number":198,"context_line":"their rules (see the case of INGRESS_DEFLECTOR, which needs INPUT_TAGGING.next)"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_6660b636","line":195,"range":{"start_line":195,"start_character":41,"end_line":195,"end_character":43},"updated":"2016-05-18 14:46:50.000000000","message":"remove \"an\"\nremove the first comma and replace the second comma with a period.","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"336aa3db23b6e2ca24b85df9179fa41a10a953dd","unresolved":false,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":"Every functional block can be composed of one or several openflow tables."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"Every functional block has an entry, and an at least one exit point (next),"},{"line_number":196,"context_line":"the entry and exit points of other functional blocks (specially the system provided"},{"line_number":197,"context_line":"ones) can be inspected and discovered by other functional blocks to compose"},{"line_number":198,"context_line":"their rules (see the case of INGRESS_DEFLECTOR, which needs INPUT_TAGGING.next)"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_d32b1f93","line":195,"range":{"start_line":195,"start_character":41,"end_line":195,"end_character":43},"in_reply_to":"bab6814e_6660b636","updated":"2016-05-24 13:13:56.000000000","message":"Done","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":7776,"name":"Paul Carver","email":"pcarver@att.com","username":"pcarver"},"change_message_id":"ad61ba4f7d5ae32cb573e6c800535661121603ae","unresolved":false,"context_lines":[{"line_number":193,"context_line":"Every functional block can be composed of one or several openflow tables."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"Every functional block has an entry, and an at least one exit point (next),"},{"line_number":196,"context_line":"the entry and exit points of other functional blocks (specially the system provided"},{"line_number":197,"context_line":"ones) can be inspected and discovered by other functional blocks to compose"},{"line_number":198,"context_line":"their rules (see the case of INGRESS_DEFLECTOR, which needs INPUT_TAGGING.next)"},{"line_number":199,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_a66d7e06","line":196,"range":{"start_line":196,"start_character":0,"end_line":196,"end_character":3},"updated":"2016-05-18 14:46:50.000000000","message":"Capitalize The","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"336aa3db23b6e2ca24b85df9179fa41a10a953dd","unresolved":false,"context_lines":[{"line_number":193,"context_line":"Every functional block can be composed of one or several openflow tables."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"Every functional block has an entry, and an at least one exit point (next),"},{"line_number":196,"context_line":"the entry and exit points of other functional blocks (specially the system provided"},{"line_number":197,"context_line":"ones) can be inspected and discovered by other functional blocks to compose"},{"line_number":198,"context_line":"their rules (see the case of INGRESS_DEFLECTOR, which needs INPUT_TAGGING.next)"},{"line_number":199,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_33170b56","line":196,"range":{"start_line":196,"start_character":0,"end_line":196,"end_character":3},"in_reply_to":"bab6814e_a66d7e06","updated":"2016-05-24 13:13:56.000000000","message":"Done","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":7776,"name":"Paul Carver","email":"pcarver@att.com","username":"pcarver"},"change_message_id":"ad61ba4f7d5ae32cb573e6c800535661121603ae","unresolved":false,"context_lines":[{"line_number":200,"context_line":"Ordering of functional blocks"},{"line_number":201,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"Ordering of functional blocks is configurable, while the agent provides"},{"line_number":204,"context_line":"default ordering for the community defined functions, external extensions"},{"line_number":205,"context_line":"could document their preferred order::"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_06560a29","line":203,"range":{"start_line":203,"start_character":45,"end_line":203,"end_character":52},"updated":"2016-05-18 14:46:50.000000000","message":"replace the comma with a period and capitalize While","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"336aa3db23b6e2ca24b85df9179fa41a10a953dd","unresolved":false,"context_lines":[{"line_number":200,"context_line":"Ordering of functional blocks"},{"line_number":201,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"Ordering of functional blocks is configurable, while the agent provides"},{"line_number":204,"context_line":"default ordering for the community defined functions, external extensions"},{"line_number":205,"context_line":"could document their preferred order::"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_7311935d","line":203,"range":{"start_line":203,"start_character":45,"end_line":203,"end_character":52},"in_reply_to":"bab6814e_06560a29","updated":"2016-05-24 13:13:56.000000000","message":"Done","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"2a76946c36d8b25f175705524a57b66749dccd2a","unresolved":false,"context_lines":[{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    [openflow_pipeline]"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    egress \u003d TAPAAS_EGRESS_PREFILTER, SFC_EGRESS_PREFILTER, EGRESS_FILTER,"},{"line_number":210,"context_line":"             QOS_EGRESS_DSCP, QOS_EGRESS_MIN_BW,"},{"line_number":211,"context_line":"             TAPAAS_EGRESS_POSTFILTER, SFC_EGRESS_POSTFILTER"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    ingress \u003d TAPAAS_INGRESS_PREFILTER, SFC_INGRESS_PREFILTER, INGRESS_FILTER,"},{"line_number":214,"context_line":"              TAPAAS_INGRES_POSTFILTER, SFC_INGRESS_POSTFILTER"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_8353d738","line":211,"range":{"start_line":209,"start_character":1,"end_line":211,"end_character":60},"updated":"2016-05-13 15:49:52.000000000","message":"Considering INPUT_TAGGING as a functional block, needed to define the source or destination, it should be at the beginning.\n\nThe OUTPUT_STAGE block should be at the end.\n\nMy suggestion:\negress \u003d INPUT_TAGGING, TAPAAS_EGRESS_PREFILTER, SFC_EGRESS_PREFILTER,\n         EGRESS_FILTER, QOS_EGRESS_DSCP, QOS_EGRESS_MIN_BW,\n         TAPAAS_EGRESS_POSTFILTER, SFC_EGRESS_POSTFILTER, OUTPUT_STAGE","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"336aa3db23b6e2ca24b85df9179fa41a10a953dd","unresolved":false,"context_lines":[{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    [openflow_pipeline]"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    egress \u003d TAPAAS_EGRESS_PREFILTER, SFC_EGRESS_PREFILTER, EGRESS_FILTER,"},{"line_number":210,"context_line":"             QOS_EGRESS_DSCP, QOS_EGRESS_MIN_BW,"},{"line_number":211,"context_line":"             TAPAAS_EGRESS_POSTFILTER, SFC_EGRESS_POSTFILTER"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    ingress \u003d TAPAAS_INGRESS_PREFILTER, SFC_INGRESS_PREFILTER, INGRESS_FILTER,"},{"line_number":214,"context_line":"              TAPAAS_INGRES_POSTFILTER, SFC_INGRESS_POSTFILTER"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_f61c516c","line":211,"range":{"start_line":209,"start_character":1,"end_line":211,"end_character":60},"in_reply_to":"bab6814e_132be783","updated":"2016-05-24 13:13:56.000000000","message":"I added an extra explanation on the spec.","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"019bfb8725fd4d9299051c29469be3c2560b5d6f","unresolved":false,"context_lines":[{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    [openflow_pipeline]"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    egress \u003d TAPAAS_EGRESS_PREFILTER, SFC_EGRESS_PREFILTER, EGRESS_FILTER,"},{"line_number":210,"context_line":"             QOS_EGRESS_DSCP, QOS_EGRESS_MIN_BW,"},{"line_number":211,"context_line":"             TAPAAS_EGRESS_POSTFILTER, SFC_EGRESS_POSTFILTER"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    ingress \u003d TAPAAS_INGRESS_PREFILTER, SFC_INGRESS_PREFILTER, INGRESS_FILTER,"},{"line_number":214,"context_line":"              TAPAAS_INGRES_POSTFILTER, SFC_INGRESS_POSTFILTER"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_b6c98928","line":211,"range":{"start_line":209,"start_character":1,"end_line":211,"end_character":60},"in_reply_to":"dab17558_18b36499","updated":"2016-05-17 09:07:50.000000000","message":"Now I don\u0027t think we need to change the order, just mention it, because those stages are also modifying the flows.\n\nINPUT_TAGGING and OUTPUT_STAGE maybe will be affected by VLAN aware feature.","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"7e257103042285a13d52dc3eaf477eabdd6350e2","unresolved":false,"context_lines":[{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    [openflow_pipeline]"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    egress \u003d TAPAAS_EGRESS_PREFILTER, SFC_EGRESS_PREFILTER, EGRESS_FILTER,"},{"line_number":210,"context_line":"             QOS_EGRESS_DSCP, QOS_EGRESS_MIN_BW,"},{"line_number":211,"context_line":"             TAPAAS_EGRESS_POSTFILTER, SFC_EGRESS_POSTFILTER"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    ingress \u003d TAPAAS_INGRESS_PREFILTER, SFC_INGRESS_PREFILTER, INGRESS_FILTER,"},{"line_number":214,"context_line":"              TAPAAS_INGRES_POSTFILTER, SFC_INGRESS_POSTFILTER"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_18b36499","line":211,"range":{"start_line":209,"start_character":1,"end_line":211,"end_character":60},"in_reply_to":"dab17558_8353d738","updated":"2016-05-17 08:18:17.000000000","message":"Those are fixed by the implementation (L166), and I left them out intentionally, because the pipeline would not work at all if we modify the order.\n\nDo you think there could be any value in altering the order of those?, how?.\n\nINPUT_TAGGING is always \"table 0\" for both ingress and egress since they are the \"start point\" for openflow in both cases (arrival to switch).","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"ebcef8a5463337a5e519da04bb60bf505b790bc1","unresolved":false,"context_lines":[{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    [openflow_pipeline]"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    egress \u003d TAPAAS_EGRESS_PREFILTER, SFC_EGRESS_PREFILTER, EGRESS_FILTER,"},{"line_number":210,"context_line":"             QOS_EGRESS_DSCP, QOS_EGRESS_MIN_BW,"},{"line_number":211,"context_line":"             TAPAAS_EGRESS_POSTFILTER, SFC_EGRESS_POSTFILTER"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    ingress \u003d TAPAAS_INGRESS_PREFILTER, SFC_INGRESS_PREFILTER, INGRESS_FILTER,"},{"line_number":214,"context_line":"              TAPAAS_INGRES_POSTFILTER, SFC_INGRESS_POSTFILTER"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_132be783","line":211,"range":{"start_line":209,"start_character":1,"end_line":211,"end_character":60},"in_reply_to":"dab17558_b6c98928","updated":"2016-05-19 12:23:26.000000000","message":"It depends on how we design input_tagging and output_stage, they could be generic enough to provide information or take action based on what other features of the pipeline have set on specific registers. \n\nAnd we could enhance those blocks as the related features need such enhancements.","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"2a76946c36d8b25f175705524a57b66749dccd2a","unresolved":false,"context_lines":[{"line_number":210,"context_line":"             QOS_EGRESS_DSCP, QOS_EGRESS_MIN_BW,"},{"line_number":211,"context_line":"             TAPAAS_EGRESS_POSTFILTER, SFC_EGRESS_POSTFILTER"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    ingress \u003d TAPAAS_INGRESS_PREFILTER, SFC_INGRESS_PREFILTER, INGRESS_FILTER,"},{"line_number":214,"context_line":"              TAPAAS_INGRES_POSTFILTER, SFC_INGRESS_POSTFILTER"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":""},{"line_number":217,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_76fe73af","line":214,"range":{"start_line":213,"start_character":0,"end_line":214,"end_character":62},"updated":"2016-05-13 15:49:52.000000000","message":"The INGRESS_DEFLECTOR block should be located at the end of the filtering process.\n\nFollowing the same considerations explained in the previous comment:\ningress \u003d INPUT_TAGGING, TAPAAS_INGRESS_PREFILTER, SFC_INGRESS_PREFILTER,\n          INGRESS_FILTER, INGRESS_DEFLECTOR,\n          TAPAAS_INGRES_POSTFILTER, SFC_INGRESS_POSTFILTE, OUTPUT_STAGE","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"019bfb8725fd4d9299051c29469be3c2560b5d6f","unresolved":false,"context_lines":[{"line_number":210,"context_line":"             QOS_EGRESS_DSCP, QOS_EGRESS_MIN_BW,"},{"line_number":211,"context_line":"             TAPAAS_EGRESS_POSTFILTER, SFC_EGRESS_POSTFILTER"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    ingress \u003d TAPAAS_INGRESS_PREFILTER, SFC_INGRESS_PREFILTER, INGRESS_FILTER,"},{"line_number":214,"context_line":"              TAPAAS_INGRES_POSTFILTER, SFC_INGRESS_POSTFILTER"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":""},{"line_number":217,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_f1f15b02","line":214,"range":{"start_line":213,"start_character":0,"end_line":214,"end_character":62},"in_reply_to":"dab17558_58804c8b","updated":"2016-05-17 09:07:50.000000000","message":"I think the current explanation is enough. But I should add the INGRESS_DEFLECTOR stage in the \"ingress\" path description.","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"7e257103042285a13d52dc3eaf477eabdd6350e2","unresolved":false,"context_lines":[{"line_number":210,"context_line":"             QOS_EGRESS_DSCP, QOS_EGRESS_MIN_BW,"},{"line_number":211,"context_line":"             TAPAAS_EGRESS_POSTFILTER, SFC_EGRESS_POSTFILTER"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    ingress \u003d TAPAAS_INGRESS_PREFILTER, SFC_INGRESS_PREFILTER, INGRESS_FILTER,"},{"line_number":214,"context_line":"              TAPAAS_INGRES_POSTFILTER, SFC_INGRESS_POSTFILTER"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":""},{"line_number":217,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_58804c8b","line":214,"range":{"start_line":213,"start_character":0,"end_line":214,"end_character":62},"in_reply_to":"dab17558_76fe73af","updated":"2016-05-17 08:18:17.000000000","message":"Same thinking,\n\nMay be we should add a note in comments explaining the fixed input \u0026 output blocks?.\n\nWhat do you think?\n\nThanks for the comments.","commit_id":"c4cffab1c1a441d3f0e1cdf9ce41010c6650df72"}]}
