)]}'
{"specs/train/per-physnet-interface-driver-support.rst":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b0b68ab92385c08b0ef40dd19a179d6b2fe79408","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://bugs.launchpad.net/neutron/+bug/1834176"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Today L3 and DHCP agents use an ``interface driver`` [1] to plug"},{"line_number":14,"context_line":"a DHCP/Router port to the underlying fabric. The type of interface driver"},{"line_number":15,"context_line":"used is defined per agent in the configuration option, ``interface_driver``."},{"line_number":16,"context_line":"This defines the type of network interface created and the method"},{"line_number":17,"context_line":"used to plug, unplug and configure the aforementioned interface."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_7760cc33","line":15,"range":{"start_line":13,"start_character":0,"end_line":15,"end_character":76},"updated":"2019-07-04 12:33:54.000000000","message":"How could this happen? You mean we will run multiple l2 agents (for instance linux-agent and ovs-agent) in one single host, then L3 and DHCP can use any of these drivers?","commit_id":"68078c2e6114d78f878d495cd2380e343820e620"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"37c33e837bf591c2dd860ebdc0416a8c124987cb","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://bugs.launchpad.net/neutron/+bug/1834176"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Today L3 and DHCP agents use an ``interface driver`` [1] to plug"},{"line_number":14,"context_line":"a DHCP/Router port to the underlying fabric. The type of interface driver"},{"line_number":15,"context_line":"used is defined per agent in the configuration option, ``interface_driver``."},{"line_number":16,"context_line":"This defines the type of network interface created and the method"},{"line_number":17,"context_line":"used to plug, unplug and configure the aforementioned interface."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_c09d1b5a","line":15,"range":{"start_line":13,"start_character":0,"end_line":15,"end_character":76},"in_reply_to":"7faddb67_7760cc33","updated":"2019-07-07 07:59:12.000000000","message":"For the L2 wiring, yes.\n\nThe interface driver creates the OS entity (e.g ovs internal port, veth pairs, ipoib interfaces as in the first use case below), L2 agent acts on the creation of this entity and performs the needed L2 wiring.\n\nIt is possible today to run several L2 agents on the same host (to deal with the binding of ports of different types or on different physnets)\n\nThe goal of this spec is to allow an L3/DHCP agents to use different interface drivers (per physnet). The wiring of the created interfaces will be handled by different L2 agents.","commit_id":"68078c2e6114d78f878d495cd2380e343820e620"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"1f328ff463fd5602161021806b64e6e53647eba7","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Problem Description"},{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* As an HPC Cloud provider i would like to utilize both Infiniband"},{"line_number":30,"context_line":"  and Ethernet fabrics, the former is used for performance sensitive"},{"line_number":31,"context_line":"  and RDMA workloads and the latter to run standard Ethernet TCP/IP workloads."},{"line_number":32,"context_line":"  the two fabrics need to co-exist, L3 and DHCP agents provide services to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9fb8cfa7_27ce165a","line":29,"range":{"start_line":29,"start_character":8,"end_line":29,"end_character":17},"updated":"2019-06-26 12:39:50.000000000","message":"This can be a baremetal Cloud, Hypervisors running VMs or a mix of boths.","commit_id":"68078c2e6114d78f878d495cd2380e343820e620"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"9b4e5e7651523265970011e6d9c0c25628e18c02","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* As a Cloud provider utilizing more than one physnet, using openvswitch"},{"line_number":36,"context_line":"  and linux bridge, I would like the ability to provide DHCP services"},{"line_number":37,"context_line":"  for subnets on both physnets in the same DHCP agent."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* As a Cloud provider utilizing more than one physnet, using both openvswitch"},{"line_number":40,"context_line":"  and linux bridge, I would like the ability to provide Routing services for"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9fb8cfa7_96a616c1","line":37,"updated":"2019-06-26 08:41:00.000000000","message":"Do we support to run both openvswitch and linuxbridge agents on same host in same time?\nI don\u0027t think that this is good example really.","commit_id":"68078c2e6114d78f878d495cd2380e343820e620"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"204c0ad5e71dc889eff28d56f6d8bd978ec678da","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* As a Cloud provider utilizing more than one physnet, using openvswitch"},{"line_number":36,"context_line":"  and linux bridge, I would like the ability to provide DHCP services"},{"line_number":37,"context_line":"  for subnets on both physnets in the same DHCP agent."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* As a Cloud provider utilizing more than one physnet, using both openvswitch"},{"line_number":40,"context_line":"  and linux bridge, I would like the ability to provide Routing services for"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9fb8cfa7_c8b04646","line":37,"in_reply_to":"9fb8cfa7_07dbd2ec","updated":"2019-06-27 20:54:40.000000000","message":"Technically it is possible but I\u0027m really not sure if this is valid use case :)","commit_id":"68078c2e6114d78f878d495cd2380e343820e620"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"1f328ff463fd5602161021806b64e6e53647eba7","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* As a Cloud provider utilizing more than one physnet, using openvswitch"},{"line_number":36,"context_line":"  and linux bridge, I would like the ability to provide DHCP services"},{"line_number":37,"context_line":"  for subnets on both physnets in the same DHCP agent."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* As a Cloud provider utilizing more than one physnet, using both openvswitch"},{"line_number":40,"context_line":"  and linux bridge, I would like the ability to provide Routing services for"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9fb8cfa7_07dbd2ec","line":37,"in_reply_to":"9fb8cfa7_96a616c1","updated":"2019-06-26 12:39:50.000000000","message":"Technically it is possible (i didnt find a limitation in the code, is there?)\n\nNeutron is able to support several ML2 drivers and their agents can co-exist in the host.\n\nI agree it\u0027s less likely someone will do it.","commit_id":"68078c2e6114d78f878d495cd2380e343820e620"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"2504b17f6577e717d2b6044193ae3bd05aff65d2","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* As a Cloud provider utilizing more than one physnet, using openvswitch"},{"line_number":36,"context_line":"  and linux bridge, I would like the ability to provide DHCP services"},{"line_number":37,"context_line":"  for subnets on both physnets in the same DHCP agent."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* As a Cloud provider utilizing more than one physnet, using both openvswitch"},{"line_number":40,"context_line":"  and linux bridge, I would like the ability to provide Routing services for"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9fb8cfa7_5e1e350c","line":37,"in_reply_to":"9fb8cfa7_c8b04646","updated":"2019-06-30 07:04:50.000000000","message":"Ack, will remove.","commit_id":"68078c2e6114d78f878d495cd2380e343820e620"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"9b4e5e7651523265970011e6d9c0c25628e18c02","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* As a Cloud provider utilizing more than one physnet, using both openvswitch"},{"line_number":40,"context_line":"  and linux bridge, I would like the ability to provide Routing services for"},{"line_number":41,"context_line":"  subnets on both physnets in the same L3 agent."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"A preface about interface drivers"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9fb8cfa7_56ac1e9e","line":41,"updated":"2019-06-26 08:41:00.000000000","message":"same here","commit_id":"68078c2e6114d78f878d495cd2380e343820e620"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"2504b17f6577e717d2b6044193ae3bd05aff65d2","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* As a Cloud provider utilizing more than one physnet, using both openvswitch"},{"line_number":40,"context_line":"  and linux bridge, I would like the ability to provide Routing services for"},{"line_number":41,"context_line":"  subnets on both physnets in the same L3 agent."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"A preface about interface drivers"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9fb8cfa7_1e143de8","line":41,"in_reply_to":"9fb8cfa7_56ac1e9e","updated":"2019-06-30 07:04:50.000000000","message":"will remove.","commit_id":"68078c2e6114d78f878d495cd2380e343820e620"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"9b4e5e7651523265970011e6d9c0c25628e18c02","unresolved":false,"context_lines":[{"line_number":61,"context_line":"To support a per physnet port operation in L3 and DHCP agents we will"},{"line_number":62,"context_line":"Introduce:"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"1. A new ``multi`` interface driver."},{"line_number":65,"context_line":"2. A configuration option for the new interface driver to provide"},{"line_number":66,"context_line":"   \u003cphystnet\u003e:\u003cinterface_driver\u003e mapping."},{"line_number":67,"context_line":"3. An rpc to get the needed network information for the new driver to delegate"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9fb8cfa7_968ff628","line":64,"updated":"2019-06-26 08:41:00.000000000","message":"IMO instead of providing new driver we can modify code which currently is using drivers that it would use different driver for ports connected to different physnet.","commit_id":"68078c2e6114d78f878d495cd2380e343820e620"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"967524750fb22b987164e6fd059af543d61cdb7c","unresolved":false,"context_lines":[{"line_number":61,"context_line":"To support a per physnet port operation in L3 and DHCP agents we will"},{"line_number":62,"context_line":"Introduce:"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"1. A new ``multi`` interface driver."},{"line_number":65,"context_line":"2. A configuration option for the new interface driver to provide"},{"line_number":66,"context_line":"   \u003cphystnet\u003e:\u003cinterface_driver\u003e mapping."},{"line_number":67,"context_line":"3. An rpc to get the needed network information for the new driver to delegate"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9fb8cfa7_da19fbd6","line":64,"in_reply_to":"9fb8cfa7_67a08e43","updated":"2019-06-27 08:45:00.000000000","message":"Another alternative is to regard the `multi` interface as an \"interface driver manager\" (it will not subclass LinuxInterfaceDriver). Objects like namespaces, routers will use it instead of directly invoking an interface driver.\n\nIts kind of a semantic alternative.","commit_id":"68078c2e6114d78f878d495cd2380e343820e620"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"1f328ff463fd5602161021806b64e6e53647eba7","unresolved":false,"context_lines":[{"line_number":61,"context_line":"To support a per physnet port operation in L3 and DHCP agents we will"},{"line_number":62,"context_line":"Introduce:"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"1. A new ``multi`` interface driver."},{"line_number":65,"context_line":"2. A configuration option for the new interface driver to provide"},{"line_number":66,"context_line":"   \u003cphystnet\u003e:\u003cinterface_driver\u003e mapping."},{"line_number":67,"context_line":"3. An rpc to get the needed network information for the new driver to delegate"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9fb8cfa7_67a08e43","line":64,"in_reply_to":"9fb8cfa7_968ff628","updated":"2019-06-26 12:39:50.000000000","message":"Its in the alternatives section, however taking this approach will require extensive changes in all objects using the interface driver, some of them are not aware of the notion of a network like namespace objects.","commit_id":"68078c2e6114d78f878d495cd2380e343820e620"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"9b4e5e7651523265970011e6d9c0c25628e18c02","unresolved":false,"context_lines":[{"line_number":82,"context_line":"   This cache will be populated via a provided RPC callback in the multi"},{"line_number":83,"context_line":"   interface driver constructor"},{"line_number":84,"context_line":"2. When the interface exists delegate to the driver handling the specific"},{"line_number":85,"context_line":"   type of interface.The type of interface is available as a netlink nested"},{"line_number":86,"context_line":"   attribute (``IFLA_LINKINFO:IFLA_INFO_KIND``)."},{"line_number":87,"context_line":"   interface drivers will be extended to advertise the type of interface it"},{"line_number":88,"context_line":"   handles e.g `veth`, `openvswitch`."}],"source_content_type":"text/x-rst","patch_set":1,"id":"9fb8cfa7_b6731a4e","line":85,"range":{"start_line":85,"start_character":20,"end_line":85,"end_character":21},"updated":"2019-06-26 08:41:00.000000000","message":"nitty nit: missing space after dot.","commit_id":"68078c2e6114d78f878d495cd2380e343820e620"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"9b4e5e7651523265970011e6d9c0c25628e18c02","unresolved":false,"context_lines":[{"line_number":133,"context_line":"to minimize plugin to agent traffic."},{"line_number":134,"context_line":"The new driver will invoke the RPC on demand. That is iff it does not have"},{"line_number":135,"context_line":"the physnet information for a specific network ID. In that case an RPC will be"},{"line_number":136,"context_line":"triggered to fetch **all** networks, refreshing its internal cache."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"This operation is limited to when `multi` interface driver is used and"},{"line_number":139,"context_line":"is not expected to happen often. When it does, only the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9fb8cfa7_16a0e68f","line":136,"updated":"2019-06-26 08:41:00.000000000","message":"is it necessary to refresh cache? Can physnet for existing network be changed?","commit_id":"68078c2e6114d78f878d495cd2380e343820e620"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"1f328ff463fd5602161021806b64e6e53647eba7","unresolved":false,"context_lines":[{"line_number":133,"context_line":"to minimize plugin to agent traffic."},{"line_number":134,"context_line":"The new driver will invoke the RPC on demand. That is iff it does not have"},{"line_number":135,"context_line":"the physnet information for a specific network ID. In that case an RPC will be"},{"line_number":136,"context_line":"triggered to fetch **all** networks, refreshing its internal cache."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"This operation is limited to when `multi` interface driver is used and"},{"line_number":139,"context_line":"is not expected to happen often. When it does, only the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9fb8cfa7_c77cdab7","line":136,"in_reply_to":"9fb8cfa7_16a0e68f","updated":"2019-06-26 12:39:50.000000000","message":"it cannot change, we can exclude existing networks.","commit_id":"68078c2e6114d78f878d495cd2380e343820e620"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"9b4e5e7651523265970011e6d9c0c25628e18c02","unresolved":false,"context_lines":[{"line_number":164,"context_line":"   the Agent\u0027s configuration as they both will create `veth` interfaces."},{"line_number":165,"context_line":"   This limitation can be removed however it is likely some sort of accounting"},{"line_number":166,"context_line":"   will need to be performed and persisted in order to invoke the correct"},{"line_number":167,"context_line":"   delegate interface driver. It should be noted that ``ovs_use_veth`` is"},{"line_number":168,"context_line":"   deprecated."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"Deployment implications"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9fb8cfa7_b6c1da31","line":168,"range":{"start_line":167,"start_character":30,"end_line":168,"end_character":14},"updated":"2019-06-26 08:41:00.000000000","message":"is it? I don\u0027t see such info anywhere.","commit_id":"68078c2e6114d78f878d495cd2380e343820e620"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"1f328ff463fd5602161021806b64e6e53647eba7","unresolved":false,"context_lines":[{"line_number":164,"context_line":"   the Agent\u0027s configuration as they both will create `veth` interfaces."},{"line_number":165,"context_line":"   This limitation can be removed however it is likely some sort of accounting"},{"line_number":166,"context_line":"   will need to be performed and persisted in order to invoke the correct"},{"line_number":167,"context_line":"   delegate interface driver. It should be noted that ``ovs_use_veth`` is"},{"line_number":168,"context_line":"   deprecated."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"Deployment implications"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9fb8cfa7_62cddcb5","line":168,"range":{"start_line":167,"start_character":30,"end_line":168,"end_character":14},"in_reply_to":"9fb8cfa7_b6c1da31","updated":"2019-06-26 12:39:50.000000000","message":"it isn\u0027t. i will remove this sentence.","commit_id":"68078c2e6114d78f878d495cd2380e343820e620"}]}
