)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"f29fb96ea32d1a4ec3e8d07f82dc2dfee36d819d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     waleed mousa \u003cwaleedm@mellanox.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-08-18 09:30:29 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"fix missing shared_block for PF interface"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"this patch handels 2 cases of missing shared_block for PF interface:"},{"line_number":10,"context_line":" * First os-net-config run / Post deployment"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"7faddb67_2fcfb47f","line":7,"updated":"2019-08-19 08:31:38.000000000","message":"I believe the message needs to be updated to describe whats being done in the commit and why.\n\nas we know ovs does not recreate shared_block for PF interfaces if they have IP(v6) configured on them as it assumes they are not managed by OVS.","commit_id":"4211fdb3d96fb7179baa6e4baac708bba7ba4cf6"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"aa28bca041e51ec37de986feb1240fff674f627d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     waleed mousa \u003cwaleedm@mellanox.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-08-18 09:30:29 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"fix missing shared_block for PF interface"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"this patch handels 2 cases of missing shared_block for PF interface:"},{"line_number":10,"context_line":" * First os-net-config run / Post deployment"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"7faddb67_b25692cd","line":7,"in_reply_to":"7faddb67_2fcfb47f","updated":"2019-08-20 11:16:31.000000000","message":"Done","commit_id":"4211fdb3d96fb7179baa6e4baac708bba7ba4cf6"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"7956966bdce125239894bb3343d8b0c372707126","unresolved":false,"context_lines":[{"line_number":3,"context_line":"AuthorDate: 2019-07-15 00:26:02 +0300"},{"line_number":4,"context_line":"Commit:     waleed mousa \u003cwaleedm@mellanox.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-08-20 11:54:56 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"fix missing shared_block for PF interface in switchdev bond connected to ovs"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"this patch handels 2 cases of missing shared_block for PF interface in"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"7faddb67_a1e2932e","line":6,"updated":"2019-08-22 08:03:27.000000000","message":"I think the commit meassage should:\n\n1. explain OVS behavior in regards to shared block in case of bond + switchdev and what happens today in case of deployment and reboot.\n\n2. explain the two cases that os-net-config is required to handle\n\n3. the proposed solution for each case\n\nissue examples can be omitted as they appear in the bug.\n\nmost of the information is here, but id prefer if its structured better for clarity.","commit_id":"e5cdb8c46c9694830439702dbeec799ddb80e4c6"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"3135b8d363a717ef1eb6407ca4171f9a0fe53cc4","unresolved":false,"context_lines":[{"line_number":16,"context_line":" * First os-net-config run / Post deployment"},{"line_number":17,"context_line":" * Reboot compute node"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"For deployment case, we are restarting openvswitch and ifdown ifup"},{"line_number":20,"context_line":"any PF interface, this will make openvswitch recreate PF shared_block"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"For reboot case, we are disabling ipv6 for PF interfaces and because"},{"line_number":23,"context_line":"the ovs will start after moving to swichdev, so the shared_blocks will"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":25,"id":"7faddb67_18864b15","line":20,"range":{"start_line":19,"start_character":0,"end_line":20,"end_character":69},"updated":"2019-08-26 04:18:27.000000000","message":"Why is the deployment case different? Can ipv6 be disabled before starting the bond configuration?","commit_id":"459dc084f8c7585568403d2afa5e6c7adb7d158e"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"076c56df6678c9b783e05b3280dc6b88eda8c940","unresolved":false,"context_lines":[{"line_number":16,"context_line":" * First os-net-config run / Post deployment"},{"line_number":17,"context_line":" * Reboot compute node"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"For deployment case, we are restarting openvswitch and ifdown ifup"},{"line_number":20,"context_line":"any PF interface, this will make openvswitch recreate PF shared_block"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"For reboot case, we are disabling ipv6 for PF interfaces and because"},{"line_number":23,"context_line":"the ovs will start after moving to swichdev, so the shared_blocks will"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":25,"id":"7faddb67_53bc9905","line":20,"range":{"start_line":19,"start_character":0,"end_line":20,"end_character":69},"in_reply_to":"7faddb67_18864b15","updated":"2019-08-26 16:52:44.000000000","message":"I tried it but from the ovs side it will still have the same state for pfs and so the shared_blocks will not be created","commit_id":"459dc084f8c7585568403d2afa5e6c7adb7d158e"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"7046e6cafbd481079be980101e3cf2ebb75152e2","unresolved":false,"context_lines":[{"line_number":16,"context_line":" * First os-net-config run / Post deployment"},{"line_number":17,"context_line":" * Reboot compute node"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"For deployment case, we are restarting openvswitch and ifdown ifup"},{"line_number":20,"context_line":"any PF interface, this will make openvswitch recreate PF shared_block"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"For reboot case, we are disabling ipv6 for PF interfaces and because"},{"line_number":23,"context_line":"the ovs will start after moving to swichdev, so the shared_blocks will"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":25,"id":"7faddb67_72c72c66","line":20,"range":{"start_line":19,"start_character":0,"end_line":20,"end_character":69},"in_reply_to":"7faddb67_527790a0","updated":"2019-08-28 09:56:06.000000000","message":"Thanks Waleed, if using (2) is not working, then there is no alternative. I am good.","commit_id":"459dc084f8c7585568403d2afa5e6c7adb7d158e"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"81308f7dc5b9be91da66240a21c92cdd8ba64883","unresolved":false,"context_lines":[{"line_number":16,"context_line":" * First os-net-config run / Post deployment"},{"line_number":17,"context_line":" * Reboot compute node"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"For deployment case, we are restarting openvswitch and ifdown ifup"},{"line_number":20,"context_line":"any PF interface, this will make openvswitch recreate PF shared_block"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"For reboot case, we are disabling ipv6 for PF interfaces and because"},{"line_number":23,"context_line":"the ovs will start after moving to swichdev, so the shared_blocks will"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":25,"id":"7faddb67_7cff1300","line":20,"range":{"start_line":19,"start_character":0,"end_line":20,"end_character":69},"in_reply_to":"7faddb67_53bc9905","updated":"2019-08-27 15:22:47.000000000","message":"Could you provide details (code flow used) on where did you invoke write the sysctl and apply it? It should have been done before the ifup call of linux bond.","commit_id":"459dc084f8c7585568403d2afa5e6c7adb7d158e"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"4fa5882d4249203a5ddc9bb1504108a2ed6efd75","unresolved":false,"context_lines":[{"line_number":16,"context_line":" * First os-net-config run / Post deployment"},{"line_number":17,"context_line":" * Reboot compute node"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"For deployment case, we are restarting openvswitch and ifdown ifup"},{"line_number":20,"context_line":"any PF interface, this will make openvswitch recreate PF shared_block"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"For reboot case, we are disabling ipv6 for PF interfaces and because"},{"line_number":23,"context_line":"the ovs will start after moving to swichdev, so the shared_blocks will"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":25,"id":"7faddb67_527790a0","line":20,"range":{"start_line":19,"start_character":0,"end_line":20,"end_character":69},"in_reply_to":"7faddb67_7cff1300","updated":"2019-08-28 09:39:22.000000000","message":"I tested it in two different places:\n1 directly after L312 in https://review.opendev.org/#/c/670740/26/os_net_config/cli.py\n\n2 I also moved all the code for adding IPv6 config to be configured and invoked before adding the object in line 299 like this http://paste.openstack.org/show/766454/\n\nand also in the two cases didn\u0027t create the shared_blocks without restating the ovs","commit_id":"459dc084f8c7585568403d2afa5e6c7adb7d158e"}],"os_net_config/cli.py":[{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"e58bdcaee8da46f93103696959116e98ed5e82f9","unresolved":false,"context_lines":[{"line_number":292,"context_line":"            if check_configure_sriov(obj):"},{"line_number":293,"context_line":"                configure_sriov \u003d True"},{"line_number":294,"context_line":"                provider.add_object(obj)"},{"line_number":295,"context_line":"                sriovpf_member_of_ovs \u003d sriovpf_member_of_ovs\\"},{"line_number":296,"context_line":"                    or check_sriovpf_member_of_ovs(obj)"},{"line_number":297,"context_line":"    if configure_sriov:"},{"line_number":298,"context_line":"        # Apply the ifcfgs for PFs now, so that NM_CONTROLLED\u003dno is applied"},{"line_number":299,"context_line":"        # for each of the PFs before configuring the numvfs for the PF device."}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_6b2255bb","line":296,"range":{"start_line":295,"start_character":16,"end_line":296,"end_character":55},"updated":"2019-07-18 16:53:40.000000000","message":"a shorter version:\n\nsriovpf_member_of_ovs |\u003d check_sriovpf_member_of_ovs(obj)","commit_id":"248bf7d8999c637678c73b679e0b7b950a008797"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"aa28bca041e51ec37de986feb1240fff674f627d","unresolved":false,"context_lines":[{"line_number":292,"context_line":"            if check_configure_sriov(obj):"},{"line_number":293,"context_line":"                configure_sriov \u003d True"},{"line_number":294,"context_line":"                provider.add_object(obj)"},{"line_number":295,"context_line":"                sriovpf_member_of_ovs \u003d sriovpf_member_of_ovs\\"},{"line_number":296,"context_line":"                    or check_sriovpf_member_of_ovs(obj)"},{"line_number":297,"context_line":"    if configure_sriov:"},{"line_number":298,"context_line":"        # Apply the ifcfgs for PFs now, so that NM_CONTROLLED\u003dno is applied"},{"line_number":299,"context_line":"        # for each of the PFs before configuring the numvfs for the PF device."}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_babab907","line":296,"range":{"start_line":295,"start_character":16,"end_line":296,"end_character":55},"in_reply_to":"7faddb67_6b2255bb","updated":"2019-08-20 11:16:31.000000000","message":"Done","commit_id":"248bf7d8999c637678c73b679e0b7b950a008797"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"899682e9fc1325f1dc1b4d1baa56a43fe2d19416","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from os_net_config import version"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"logger \u003d logging.getLogger(__name__)"},{"line_number":33,"context_line":"_SYSTEM_CTL_CONFIG_FILE \u003d \u0027/etc/sysctl.conf\u0027"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def parse_opts(argv):"}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_82cc8034","line":33,"range":{"start_line":33,"start_character":26,"end_line":33,"end_character":44},"updated":"2019-08-19 05:31:36.000000000","message":"Can it be placed in \"/etc/sysctl.d/*.conf\" directory?","commit_id":"4211fdb3d96fb7179baa6e4baac708bba7ba4cf6"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"aa28bca041e51ec37de986feb1240fff674f627d","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from os_net_config import version"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"logger \u003d logging.getLogger(__name__)"},{"line_number":33,"context_line":"_SYSTEM_CTL_CONFIG_FILE \u003d \u0027/etc/sysctl.conf\u0027"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def parse_opts(argv):"}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_68ee0222","line":33,"range":{"start_line":33,"start_character":26,"end_line":33,"end_character":44},"in_reply_to":"7faddb67_82cc8034","updated":"2019-08-20 11:16:31.000000000","message":"Done","commit_id":"4211fdb3d96fb7179baa6e4baac708bba7ba4cf6"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"f29fb96ea32d1a4ec3e8d07f82dc2dfee36d819d","unresolved":false,"context_lines":[{"line_number":144,"context_line":"    return configure_sriov"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"def check_sriovpf_member_of_bond_ovs_port(obj):"},{"line_number":148,"context_line":"    sriovpf_member_of_bond_ovs_port \u003d False"},{"line_number":149,"context_line":"    if isinstance(obj, objects.OvsBridge):"},{"line_number":150,"context_line":"        for member in obj.members:"}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_2faed4e6","line":147,"updated":"2019-08-19 08:31:38.000000000","message":"although the method name begins with a check, it does more than that (i.e disables ipv6 for pf netdev)\n\ni would either:\nsplit into 2 methods, one for checking and retrieving a list of pf netdevs that are members of ovs + bond, and one for performing the ipv6 configuration\n\nor rename method to something like : disable_ipv6_for_pf_if_needed()","commit_id":"4211fdb3d96fb7179baa6e4baac708bba7ba4cf6"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"aa28bca041e51ec37de986feb1240fff674f627d","unresolved":false,"context_lines":[{"line_number":144,"context_line":"    return configure_sriov"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"def check_sriovpf_member_of_bond_ovs_port(obj):"},{"line_number":148,"context_line":"    sriovpf_member_of_bond_ovs_port \u003d False"},{"line_number":149,"context_line":"    if isinstance(obj, objects.OvsBridge):"},{"line_number":150,"context_line":"        for member in obj.members:"}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_5242be3c","line":147,"in_reply_to":"7faddb67_2faed4e6","updated":"2019-08-20 11:16:31.000000000","message":"Done","commit_id":"4211fdb3d96fb7179baa6e4baac708bba7ba4cf6"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"45e56461595b7e44a789fd8502d4914462f65b9e","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                        if child_member.link_mode \u003d\u003d \u0027switchdev\u0027:"},{"line_number":163,"context_line":"                            sriovpf_member_of_bond_ovs_port \u003d True"},{"line_number":164,"context_line":"                            net_devs_list.append(child_member.name)"},{"line_number":165,"context_line":"    return sriovpf_member_of_bond_ovs_port, net_devs_list"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"def main(argv\u003dsys.argv):"}],"source_content_type":"text/x-python","patch_set":21,"id":"7faddb67_9c6cb9d0","line":165,"range":{"start_line":165,"start_character":11,"end_line":165,"end_character":42},"updated":"2019-08-21 07:26:30.000000000","message":"We can safely assume that \"net_devs_list\" not empty instead of this additional flag.","commit_id":"e5cdb8c46c9694830439702dbeec799ddb80e4c6"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"7956966bdce125239894bb3343d8b0c372707126","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                        if child_member.link_mode \u003d\u003d \u0027switchdev\u0027:"},{"line_number":163,"context_line":"                            sriovpf_member_of_bond_ovs_port \u003d True"},{"line_number":164,"context_line":"                            net_devs_list.append(child_member.name)"},{"line_number":165,"context_line":"    return sriovpf_member_of_bond_ovs_port, net_devs_list"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"def main(argv\u003dsys.argv):"}],"source_content_type":"text/x-python","patch_set":21,"id":"7faddb67_619b3bc8","line":165,"range":{"start_line":165,"start_character":11,"end_line":165,"end_character":42},"in_reply_to":"7faddb67_9c6cb9d0","updated":"2019-08-22 08:03:27.000000000","message":"+1","commit_id":"e5cdb8c46c9694830439702dbeec799ddb80e4c6"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"7956966bdce125239894bb3343d8b0c372707126","unresolved":false,"context_lines":[{"line_number":304,"context_line":"                if is_sriovpf_member_of_bond_ovs_port:"},{"line_number":305,"context_line":"                    sriovpf_member_of_bond_ovs_port |\u003d \\"},{"line_number":306,"context_line":"                        is_sriovpf_member_of_bond_ovs_port"},{"line_number":307,"context_line":"                    disable_ipv6_for_netdevs(net_devices)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    if configure_sriov:"},{"line_number":310,"context_line":"        # Apply the ifcfgs for PFs now, so that NM_CONTROLLED\u003dno is applied"}],"source_content_type":"text/x-python","patch_set":21,"id":"7faddb67_013cc7bc","line":307,"range":{"start_line":307,"start_character":20,"end_line":307,"end_character":57},"updated":"2019-08-22 08:03:27.000000000","message":"small nit: you could append net_devices then disable ipv6 after the for loop for all in one shot.","commit_id":"e5cdb8c46c9694830439702dbeec799ddb80e4c6"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"52d06ff1208ee87592ba8cc156b2ac092cee9d2a","unresolved":false,"context_lines":[{"line_number":302,"context_line":"                    get_sriovpf_member_of_bond_ovs_port(obj))"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"    # After reboot, shared_block for pf interface in switchdev mode will be"},{"line_number":305,"context_line":"    # missed in case of they are slaves of a bond and that bond is an ovs port"},{"line_number":306,"context_line":"    # because the slaves will have IPv6 configured on them and it assumes they"},{"line_number":307,"context_line":"    # are not managed by ovs."},{"line_number":308,"context_line":"    # So as a workaround for that case we are disabling IPv6 over pfs in order"}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_2ab97014","line":305,"range":{"start_line":305,"start_character":21,"end_line":305,"end_character":44},"updated":"2019-08-25 07:46:30.000000000","message":"ipv6 is enabled on the slaves of the","commit_id":"cdc565b2da5b1f06e81d6eb55b0cec923e99eff5"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"52d06ff1208ee87592ba8cc156b2ac092cee9d2a","unresolved":false,"context_lines":[{"line_number":302,"context_line":"                    get_sriovpf_member_of_bond_ovs_port(obj))"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"    # After reboot, shared_block for pf interface in switchdev mode will be"},{"line_number":305,"context_line":"    # missed in case of they are slaves of a bond and that bond is an ovs port"},{"line_number":306,"context_line":"    # because the slaves will have IPv6 configured on them and it assumes they"},{"line_number":307,"context_line":"    # are not managed by ovs."},{"line_number":308,"context_line":"    # So as a workaround for that case we are disabling IPv6 over pfs in order"}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_ca33fcc3","line":305,"range":{"start_line":305,"start_character":6,"end_line":305,"end_character":12},"updated":"2019-08-25 07:46:30.000000000","message":"missing","commit_id":"cdc565b2da5b1f06e81d6eb55b0cec923e99eff5"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"ef8659fcf4612c51dbead942f48035b5763dbb21","unresolved":false,"context_lines":[{"line_number":302,"context_line":"                    get_sriovpf_member_of_bond_ovs_port(obj))"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"    # After reboot, shared_block for pf interface in switchdev mode will be"},{"line_number":305,"context_line":"    # missed in case of they are slaves of a bond and that bond is an ovs port"},{"line_number":306,"context_line":"    # because the slaves will have IPv6 configured on them and it assumes they"},{"line_number":307,"context_line":"    # are not managed by ovs."},{"line_number":308,"context_line":"    # So as a workaround for that case we are disabling IPv6 over pfs in order"}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_ca869c17","line":305,"range":{"start_line":305,"start_character":21,"end_line":305,"end_character":44},"in_reply_to":"7faddb67_2ab97014","updated":"2019-08-25 08:09:20.000000000","message":"Done","commit_id":"cdc565b2da5b1f06e81d6eb55b0cec923e99eff5"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"ef8659fcf4612c51dbead942f48035b5763dbb21","unresolved":false,"context_lines":[{"line_number":302,"context_line":"                    get_sriovpf_member_of_bond_ovs_port(obj))"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"    # After reboot, shared_block for pf interface in switchdev mode will be"},{"line_number":305,"context_line":"    # missed in case of they are slaves of a bond and that bond is an ovs port"},{"line_number":306,"context_line":"    # because the slaves will have IPv6 configured on them and it assumes they"},{"line_number":307,"context_line":"    # are not managed by ovs."},{"line_number":308,"context_line":"    # So as a workaround for that case we are disabling IPv6 over pfs in order"}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_8a80a4f9","line":305,"range":{"start_line":305,"start_character":6,"end_line":305,"end_character":12},"in_reply_to":"7faddb67_ca33fcc3","updated":"2019-08-25 08:09:20.000000000","message":"Done","commit_id":"cdc565b2da5b1f06e81d6eb55b0cec923e99eff5"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"52d06ff1208ee87592ba8cc156b2ac092cee9d2a","unresolved":false,"context_lines":[{"line_number":303,"context_line":""},{"line_number":304,"context_line":"    # After reboot, shared_block for pf interface in switchdev mode will be"},{"line_number":305,"context_line":"    # missed in case of they are slaves of a bond and that bond is an ovs port"},{"line_number":306,"context_line":"    # because the slaves will have IPv6 configured on them and it assumes they"},{"line_number":307,"context_line":"    # are not managed by ovs."},{"line_number":308,"context_line":"    # So as a workaround for that case we are disabling IPv6 over pfs in order"},{"line_number":309,"context_line":"    # to create the shared_block ingress"},{"line_number":310,"context_line":"    if sriovpf_member_of_bond_ovs_port_list:"}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_8a3d0490","line":307,"range":{"start_line":306,"start_character":6,"end_line":307,"end_character":29},"updated":"2019-08-25 07:46:30.000000000","message":"This is due to the fact that OVS assumes another entity manages the slaves.","commit_id":"cdc565b2da5b1f06e81d6eb55b0cec923e99eff5"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"ef8659fcf4612c51dbead942f48035b5763dbb21","unresolved":false,"context_lines":[{"line_number":303,"context_line":""},{"line_number":304,"context_line":"    # After reboot, shared_block for pf interface in switchdev mode will be"},{"line_number":305,"context_line":"    # missed in case of they are slaves of a bond and that bond is an ovs port"},{"line_number":306,"context_line":"    # because the slaves will have IPv6 configured on them and it assumes they"},{"line_number":307,"context_line":"    # are not managed by ovs."},{"line_number":308,"context_line":"    # So as a workaround for that case we are disabling IPv6 over pfs in order"},{"line_number":309,"context_line":"    # to create the shared_block ingress"},{"line_number":310,"context_line":"    if sriovpf_member_of_bond_ovs_port_list:"}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_8ae3c4d8","line":307,"range":{"start_line":306,"start_character":6,"end_line":307,"end_character":29},"in_reply_to":"7faddb67_8a3d0490","updated":"2019-08-25 08:09:20.000000000","message":"Done","commit_id":"cdc565b2da5b1f06e81d6eb55b0cec923e99eff5"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"52d06ff1208ee87592ba8cc156b2ac092cee9d2a","unresolved":false,"context_lines":[{"line_number":305,"context_line":"    # missed in case of they are slaves of a bond and that bond is an ovs port"},{"line_number":306,"context_line":"    # because the slaves will have IPv6 configured on them and it assumes they"},{"line_number":307,"context_line":"    # are not managed by ovs."},{"line_number":308,"context_line":"    # So as a workaround for that case we are disabling IPv6 over pfs in order"},{"line_number":309,"context_line":"    # to create the shared_block ingress"},{"line_number":310,"context_line":"    if sriovpf_member_of_bond_ovs_port_list:"},{"line_number":311,"context_line":"        disable_ipv6_for_netdevs(sriovpf_member_of_bond_ovs_port_list)"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_4a470c20","line":309,"range":{"start_line":308,"start_character":70,"end_line":309,"end_character":15},"updated":"2019-08-25 07:46:30.000000000","message":"so that OVS creates","commit_id":"cdc565b2da5b1f06e81d6eb55b0cec923e99eff5"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"ef8659fcf4612c51dbead942f48035b5763dbb21","unresolved":false,"context_lines":[{"line_number":305,"context_line":"    # missed in case of they are slaves of a bond and that bond is an ovs port"},{"line_number":306,"context_line":"    # because the slaves will have IPv6 configured on them and it assumes they"},{"line_number":307,"context_line":"    # are not managed by ovs."},{"line_number":308,"context_line":"    # So as a workaround for that case we are disabling IPv6 over pfs in order"},{"line_number":309,"context_line":"    # to create the shared_block ingress"},{"line_number":310,"context_line":"    if sriovpf_member_of_bond_ovs_port_list:"},{"line_number":311,"context_line":"        disable_ipv6_for_netdevs(sriovpf_member_of_bond_ovs_port_list)"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_ca021c73","line":309,"range":{"start_line":308,"start_character":70,"end_line":309,"end_character":15},"in_reply_to":"7faddb67_4a470c20","updated":"2019-08-25 08:09:20.000000000","message":"Done","commit_id":"cdc565b2da5b1f06e81d6eb55b0cec923e99eff5"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"3135b8d363a717ef1eb6407ca4171f9a0fe53cc4","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    sysctl_conf \u003d \"\""},{"line_number":149,"context_line":"    for net_device in net_devices:"},{"line_number":150,"context_line":"        sysctl_conf +\u003d \"net.ipv6.conf.%s.disable_ipv6 \u003d 1\\n\" % net_device"},{"line_number":151,"context_line":"    utils.append_config(_SYSTEM_CTL_CONFIG_FILE, sysctl_conf)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"def get_sriovpf_member_of_bond_ovs_port(obj):"}],"source_content_type":"text/x-python","patch_set":25,"id":"7faddb67_78741f37","line":151,"range":{"start_line":151,"start_character":10,"end_line":151,"end_character":23},"updated":"2019-08-26 04:18:27.000000000","message":"Instead of append can we write the config? As the config file is dedicated to os-net-config and all the interface\u0027s config are written together, writing the file everytime freshly would be ideal (replace any old unused configs).","commit_id":"459dc084f8c7585568403d2afa5e6c7adb7d158e"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"076c56df6678c9b783e05b3280dc6b88eda8c940","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    sysctl_conf \u003d \"\""},{"line_number":149,"context_line":"    for net_device in net_devices:"},{"line_number":150,"context_line":"        sysctl_conf +\u003d \"net.ipv6.conf.%s.disable_ipv6 \u003d 1\\n\" % net_device"},{"line_number":151,"context_line":"    utils.append_config(_SYSTEM_CTL_CONFIG_FILE, sysctl_conf)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"def get_sriovpf_member_of_bond_ovs_port(obj):"}],"source_content_type":"text/x-python","patch_set":25,"id":"7faddb67_734e7539","line":151,"range":{"start_line":151,"start_character":10,"end_line":151,"end_character":23},"in_reply_to":"7faddb67_78741f37","updated":"2019-08-26 16:52:44.000000000","message":"yes, you are right as it will be written now for one time","commit_id":"459dc084f8c7585568403d2afa5e6c7adb7d158e"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"3135b8d363a717ef1eb6407ca4171f9a0fe53cc4","unresolved":false,"context_lines":[{"line_number":308,"context_line":"    # So as a workaround for that case we are disabling IPv6 over pfs so that"},{"line_number":309,"context_line":"    # OVS creates the shared_blocks ingress"},{"line_number":310,"context_line":"    if sriovpf_member_of_bond_ovs_port_list:"},{"line_number":311,"context_line":"        disable_ipv6_for_netdevs(sriovpf_member_of_bond_ovs_port_list)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    if configure_sriov:"},{"line_number":314,"context_line":"        # Apply the ifcfgs for PFs now, so that NM_CONTROLLED\u003dno is applied"}],"source_content_type":"text/x-python","patch_set":25,"id":"7faddb67_98a6bbab","line":311,"updated":"2019-08-26 04:18:27.000000000","message":"Here config file is writen to disable the ipv6, if the written config is loaded/refreshed, then ipv6 should be disabled to bond members before adding to the bond. Was it considered?","commit_id":"459dc084f8c7585568403d2afa5e6c7adb7d158e"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"076c56df6678c9b783e05b3280dc6b88eda8c940","unresolved":false,"context_lines":[{"line_number":308,"context_line":"    # So as a workaround for that case we are disabling IPv6 over pfs so that"},{"line_number":309,"context_line":"    # OVS creates the shared_blocks ingress"},{"line_number":310,"context_line":"    if sriovpf_member_of_bond_ovs_port_list:"},{"line_number":311,"context_line":"        disable_ipv6_for_netdevs(sriovpf_member_of_bond_ovs_port_list)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    if configure_sriov:"},{"line_number":314,"context_line":"        # Apply the ifcfgs for PFs now, so that NM_CONTROLLED\u003dno is applied"}],"source_content_type":"text/x-python","patch_set":25,"id":"7faddb67_d30ba9d2","line":311,"in_reply_to":"7faddb67_98a6bbab","updated":"2019-08-26 16:52:44.000000000","message":"This for the deployment case when running cli config and during that the ovs is already running, so the state of the pfs will not be changed from ovs side","commit_id":"459dc084f8c7585568403d2afa5e6c7adb7d158e"}],"os_net_config/sriov_config.py":[{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"c3cbb862a9968f1510269365e261b70efe50b207","unresolved":false,"context_lines":[{"line_number":161,"context_line":"    observer.stop()"},{"line_number":162,"context_line":"    for item in sriov_map:"},{"line_number":163,"context_line":"        if item[\u0027device_type\u0027] \u003d\u003d \u0027pf\u0027:"},{"line_number":164,"context_line":"            processutils.execute(\u0027/usr/bin/systemctl\u0027, \u0027restart\u0027, \u0027openvswitch\u0027)"},{"line_number":165,"context_line":"            if_up_interface(item[\u0027name\u0027])"},{"line_number":166,"context_line":"            if_up_interface(item[\u0027name\u0027])"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_1aa2544c","line":164,"updated":"2019-07-15 03:58:47.000000000","message":"Why OvS need to be restarted for a PF? Update the commit msg. And here the Ovs will be restarted for each PF, which should be optimised, if at all, restart is required.","commit_id":"0d3eb99a110f706f47b06900ac8464f736e3511c"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"c3cbb862a9968f1510269365e261b70efe50b207","unresolved":false,"context_lines":[{"line_number":162,"context_line":"    for item in sriov_map:"},{"line_number":163,"context_line":"        if item[\u0027device_type\u0027] \u003d\u003d \u0027pf\u0027:"},{"line_number":164,"context_line":"            processutils.execute(\u0027/usr/bin/systemctl\u0027, \u0027restart\u0027, \u0027openvswitch\u0027)"},{"line_number":165,"context_line":"            if_up_interface(item[\u0027name\u0027])"},{"line_number":166,"context_line":"            if_up_interface(item[\u0027name\u0027])"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_9af88449","line":165,"updated":"2019-07-15 03:58:47.000000000","message":"should it be if_down_interface()?","commit_id":"0d3eb99a110f706f47b06900ac8464f736e3511c"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"e58bdcaee8da46f93103696959116e98ed5e82f9","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    observer.stop()"},{"line_number":164,"context_line":"    if restart_openvswitch:"},{"line_number":165,"context_line":"        processutils.execute(\u0027/usr/bin/systemctl\u0027, \u0027restart\u0027, \u0027openvswitch\u0027)"},{"line_number":166,"context_line":"        for item in sriov_map:"},{"line_number":167,"context_line":"            if item[\u0027device_type\u0027] \u003d\u003d \u0027pf\u0027:"},{"line_number":168,"context_line":"                if_down_interface(item[\u0027name\u0027])"},{"line_number":169,"context_line":"                if_up_interface(item[\u0027name\u0027])"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"def _wait_for_vf_creation(pf_name, numvfs):"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_763ebcb8","line":169,"range":{"start_line":165,"start_character":0,"end_line":169,"end_character":45},"updated":"2019-07-18 16:53:40.000000000","message":"consider moving this to a separate function as its logic stands on its own.","commit_id":"248bf7d8999c637678c73b679e0b7b950a008797"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"83b3faee65479598799422d25dd78f52af79d472","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    observer.stop()"},{"line_number":164,"context_line":"    if restart_openvswitch:"},{"line_number":165,"context_line":"        processutils.execute(\u0027/usr/bin/systemctl\u0027, \u0027restart\u0027, \u0027openvswitch\u0027)"},{"line_number":166,"context_line":"        for item in sriov_map:"},{"line_number":167,"context_line":"            if item[\u0027device_type\u0027] \u003d\u003d \u0027pf\u0027:"},{"line_number":168,"context_line":"                if_down_interface(item[\u0027name\u0027])"},{"line_number":169,"context_line":"                if_up_interface(item[\u0027name\u0027])"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"def _wait_for_vf_creation(pf_name, numvfs):"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_861f6d6a","line":169,"range":{"start_line":165,"start_character":0,"end_line":169,"end_character":45},"in_reply_to":"7faddb67_763ebcb8","updated":"2019-07-20 13:10:53.000000000","message":"Agreed, also please check thar the PF is switchdev","commit_id":"248bf7d8999c637678c73b679e0b7b950a008797"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"4f364d09acb59928b7a15b59a9e64906504682c4","unresolved":false,"context_lines":[{"line_number":177,"context_line":"                trigger_udev_rule \u003d add_udev_rule_for_vf_representors("},{"line_number":178,"context_line":"                    item[\u0027name\u0027]) or trigger_udev_rule"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"                if not restart_openvswitch and not is_ovs_port(item[\u0027name\u0027]):"},{"line_number":181,"context_line":"                    if_up_interface(item[\u0027name\u0027])"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    # Trigger udev rules if there is new rules written"},{"line_number":184,"context_line":"    if trigger_udev_rule:"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_b6580d8a","line":181,"range":{"start_line":180,"start_character":0,"end_line":181,"end_character":49},"updated":"2019-07-30 19:21:02.000000000","message":"why not remove this?","commit_id":"e93813a4eb960b502aaf9c3683f41f484ad34ba1"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"f29fb96ea32d1a4ec3e8d07f82dc2dfee36d819d","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        raise SRIOVNumvfsException(msg)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"def restart_ovs():"},{"line_number":117,"context_line":"    sriov_map \u003d _get_sriov_map()"},{"line_number":118,"context_line":"    processutils.execute(\u0027/usr/bin/systemctl\u0027, \u0027restart\u0027, \u0027openvswitch\u0027)"},{"line_number":119,"context_line":"    for item in sriov_map:"}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_6fc7ec99","line":116,"updated":"2019-08-19 08:31:38.000000000","message":"restart_ovs_and_pfs_netdevs() ?","commit_id":"4211fdb3d96fb7179baa6e4baac708bba7ba4cf6"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"aa28bca041e51ec37de986feb1240fff674f627d","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        raise SRIOVNumvfsException(msg)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"def restart_ovs():"},{"line_number":117,"context_line":"    sriov_map \u003d _get_sriov_map()"},{"line_number":118,"context_line":"    processutils.execute(\u0027/usr/bin/systemctl\u0027, \u0027restart\u0027, \u0027openvswitch\u0027)"},{"line_number":119,"context_line":"    for item in sriov_map:"}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_f272e349","line":116,"in_reply_to":"7faddb67_6fc7ec99","updated":"2019-08-20 11:16:31.000000000","message":"Done","commit_id":"4211fdb3d96fb7179baa6e4baac708bba7ba4cf6"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"f29fb96ea32d1a4ec3e8d07f82dc2dfee36d819d","unresolved":false,"context_lines":[{"line_number":179,"context_line":"                    item[\u0027name\u0027]) or trigger_udev_rule"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"                # ifup pf interface after moving to switchdev"},{"line_number":182,"context_line":"                if execution_from_cli:"},{"line_number":183,"context_line":"                    if_up_interface(item[\u0027name\u0027])"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    # Trigger udev rules if there is new rules written"},{"line_number":186,"context_line":"    if trigger_udev_rule:"}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_6f0a8cd1","line":183,"range":{"start_line":182,"start_character":16,"end_line":183,"end_character":49},"updated":"2019-08-19 08:31:38.000000000","message":"after reboot, interface will already be up because of net config scripts right ?\nwould be great if you elaborate more in the comment above.","commit_id":"4211fdb3d96fb7179baa6e4baac708bba7ba4cf6"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"aa28bca041e51ec37de986feb1240fff674f627d","unresolved":false,"context_lines":[{"line_number":179,"context_line":"                    item[\u0027name\u0027]) or trigger_udev_rule"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"                # ifup pf interface after moving to switchdev"},{"line_number":182,"context_line":"                if execution_from_cli:"},{"line_number":183,"context_line":"                    if_up_interface(item[\u0027name\u0027])"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    # Trigger udev rules if there is new rules written"},{"line_number":186,"context_line":"    if trigger_udev_rule:"}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_92ea8f71","line":183,"range":{"start_line":182,"start_character":16,"end_line":183,"end_character":49},"in_reply_to":"7faddb67_6f0a8cd1","updated":"2019-08-20 11:16:31.000000000","message":"Done","commit_id":"4211fdb3d96fb7179baa6e4baac708bba7ba4cf6"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"f29fb96ea32d1a4ec3e8d07f82dc2dfee36d819d","unresolved":false,"context_lines":[{"line_number":370,"context_line":"    run_ip_config_cmd(\u0027ip\u0027, \u0027link\u0027, \u0027set\u0027, \u0027dev\u0027, pf_device[\u0027name\u0027], \u0027up\u0027)"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"def _pf_interface_down(pf_name):"},{"line_number":374,"context_line":"    logger.info(\"Bringing down PF: %s\" % pf_name)"},{"line_number":375,"context_line":"    run_ip_config_cmd(\u0027ip\u0027, \u0027link\u0027, \u0027set\u0027, \u0027dev\u0027, pf_name, \u0027down\u0027)"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"def get_vendor_id(ifname):"}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_8f0fc8de","line":375,"range":{"start_line":373,"start_character":0,"end_line":375,"end_character":66},"updated":"2019-08-19 08:31:38.000000000","message":"this is not being used.","commit_id":"4211fdb3d96fb7179baa6e4baac708bba7ba4cf6"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"aa28bca041e51ec37de986feb1240fff674f627d","unresolved":false,"context_lines":[{"line_number":370,"context_line":"    run_ip_config_cmd(\u0027ip\u0027, \u0027link\u0027, \u0027set\u0027, \u0027dev\u0027, pf_device[\u0027name\u0027], \u0027up\u0027)"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"def _pf_interface_down(pf_name):"},{"line_number":374,"context_line":"    logger.info(\"Bringing down PF: %s\" % pf_name)"},{"line_number":375,"context_line":"    run_ip_config_cmd(\u0027ip\u0027, \u0027link\u0027, \u0027set\u0027, \u0027dev\u0027, pf_name, \u0027down\u0027)"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"def get_vendor_id(ifname):"}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_b2946be9","line":375,"range":{"start_line":373,"start_character":0,"end_line":375,"end_character":66},"in_reply_to":"7faddb67_8f0fc8de","updated":"2019-08-20 11:16:31.000000000","message":"Done","commit_id":"4211fdb3d96fb7179baa6e4baac708bba7ba4cf6"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"52d06ff1208ee87592ba8cc156b2ac092cee9d2a","unresolved":false,"context_lines":[{"line_number":178,"context_line":"                trigger_udev_rule \u003d add_udev_rule_for_vf_representors("},{"line_number":179,"context_line":"                    item[\u0027name\u0027]) or trigger_udev_rule"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"                # As moving the sriov-pfs to switchdev will put them in down"},{"line_number":182,"context_line":"                # state, we need to explicitly ifup them in deployment case"},{"line_number":183,"context_line":"                # After reboot, the sriov_config service will run firstly and"},{"line_number":184,"context_line":"                # then applying the net config scripts will bring up net"},{"line_number":185,"context_line":"                # devices, and so to avoid overlapping between"},{"line_number":186,"context_line":"                # running services, no need to bring them up here"},{"line_number":187,"context_line":"                if execution_from_cli:"},{"line_number":188,"context_line":"                    if_up_interface(item[\u0027name\u0027])"},{"line_number":189,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_aadec03b","line":186,"range":{"start_line":181,"start_character":18,"end_line":186,"end_character":65},"updated":"2019-08-25 07:46:30.000000000","message":"Moving the sriov-PFs to switch dev mode will put the\nnetdev interfaces in down state.\nIn case we are running during initial deployment, bring the interfaces up.\nIn case we are running as part of the sriov_config service after reboot, net config scripts, which run after sriov_config service will bring the interfaces up.","commit_id":"cdc565b2da5b1f06e81d6eb55b0cec923e99eff5"}]}
