)]}'
{"devstack-vm-gate.sh":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"ef196f7ea5f65fb0de0f3ebf4fd8941aec41d87d","unresolved":false,"context_lines":[{"line_number":63,"context_line":"LOCAL_OVERHEAD\u003d$((TUNNEL_OVERHEAD + 30))"},{"line_number":64,"context_line":"EXTERNAL_BRIDGE_MTU\u003d$((LOCAL_MTU - LOCAL_OVERHEAD))"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"function is_ipv6_tunnel {"},{"line_number":67,"context_line":"    local primary_node\u003d`cat /etc/nodepool/primary_node_private`"},{"line_number":68,"context_line":"    if ip addr show | grep $primary_node | grep -q inet6; then"},{"line_number":69,"context_line":"        return 0"}],"source_content_type":"text/x-sh","patch_set":1,"id":"dada55a8_6d1d1b73","line":66,"updated":"2016-07-18 20:43:39.000000000","message":"Due to the way bash evaluates and executes these scripts you need to define this function before using it above. A quick way to do this would be to put it in the functions file which is sourced before running this file.\n\nI would also shove all of this logic into the functions file and just do:\n\n  EXTERNAL_BRIDGE_MTU\u003d$(get_mtu $interface/IP/someuniqueidenfitier)","commit_id":"99aec71a5f314cb34578003702562acde72ebd33"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"1ebf39e3bed3af023aead013b28d9ad89429897c","unresolved":false,"context_lines":[{"line_number":53,"context_line":"PRIMARY_NODE\u003d$(cat /etc/nodepool/primary_node_private)"},{"line_number":54,"context_line":"# 30 bytes is overhead for vxlan (which is greater than GRE"},{"line_number":55,"context_line":"# allowing us to use either overlay option with this MTU."},{"line_number":56,"context_line":"VXLAN_OVERHEAD\u003d30"},{"line_number":57,"context_line":"# Get the correct local MTU based on the IP address being used"},{"line_number":58,"context_line":"EXTERNAL_BRIDGE_MTU\u003d$(get_mtu $PRIMARY_NODE $VXLAN_OVERHEAD)"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-sh","patch_set":2,"id":"3a98d1f4_fd39ffa4","line":56,"updated":"2016-10-03 20:48:51.000000000","message":"This should probably just be a constant in the get_mtu function. Localize its use to the function and reduce the number of parameters required.","commit_id":"c68b9bb6b5742c9891a7aa8e4b55d5a4d0167cdb"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"002e1547e48f7b246132c23e439fa48c62b8a2e1","unresolved":false,"context_lines":[{"line_number":53,"context_line":"PRIMARY_NODE\u003d$(cat /etc/nodepool/primary_node_private)"},{"line_number":54,"context_line":"# 30 bytes is overhead for vxlan (which is greater than GRE"},{"line_number":55,"context_line":"# allowing us to use either overlay option with this MTU."},{"line_number":56,"context_line":"VXLAN_OVERHEAD\u003d30"},{"line_number":57,"context_line":"# Get the correct local MTU based on the IP address being used"},{"line_number":58,"context_line":"EXTERNAL_BRIDGE_MTU\u003d$(get_mtu $PRIMARY_NODE $VXLAN_OVERHEAD)"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-sh","patch_set":2,"id":"3a98d1f4_7287d9b4","line":56,"in_reply_to":"3a98d1f4_fd39ffa4","updated":"2016-10-03 22:03:26.000000000","message":"Done","commit_id":"c68b9bb6b5742c9891a7aa8e4b55d5a4d0167cdb"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"03cd9c3f32cb2a0879adfe1114bcb7c694b7bc2b","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    # issue with nova net configuring br100 to take over eth0"},{"line_number":74,"context_line":"    # by default."},{"line_number":75,"context_line":"    # TODO (clarkb): figure out how to make bridge setup sane with ansible."},{"line_number":76,"context_line":"    ovs_vxlan_bridge \"br_pub\" $primary_node $EXTERNAL_BRIDGE_MTU \"True\" 1 \\"},{"line_number":77,"context_line":"                    $FLOATING_HOST_PREFIX $FLOATING_HOST_MASK \\"},{"line_number":78,"context_line":"                    $sub_nodes"},{"line_number":79,"context_line":"    ovs_vxlan_bridge \"br_flat\" $primary_node $EXTERNAL_BRIDGE_MTU \"False\" 128 \\"}],"source_content_type":"text/x-sh","patch_set":7,"id":"fa6399be_82aa13d3","line":76,"range":{"start_line":76,"start_character":30,"end_line":76,"end_character":43},"updated":"2016-10-11 17:04:49.000000000","message":"why not $PRIMARYNODE here ?","commit_id":"4f4709da1d2158094667f41dfc3fb309205074b6"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b0dfc80cad6e8785a51c7179d9c187ed02ba663b","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    # issue with nova net configuring br100 to take over eth0"},{"line_number":74,"context_line":"    # by default."},{"line_number":75,"context_line":"    # TODO (clarkb): figure out how to make bridge setup sane with ansible."},{"line_number":76,"context_line":"    ovs_vxlan_bridge \"br_pub\" $primary_node $EXTERNAL_BRIDGE_MTU \"True\" 1 \\"},{"line_number":77,"context_line":"                    $FLOATING_HOST_PREFIX $FLOATING_HOST_MASK \\"},{"line_number":78,"context_line":"                    $sub_nodes"},{"line_number":79,"context_line":"    ovs_vxlan_bridge \"br_flat\" $primary_node $EXTERNAL_BRIDGE_MTU \"False\" 128 \\"}],"source_content_type":"text/x-sh","patch_set":7,"id":"fa6399be_f5d8ddf1","line":76,"range":{"start_line":76,"start_character":30,"end_line":76,"end_character":43},"in_reply_to":"fa6399be_82aa13d3","updated":"2016-10-12 01:37:54.000000000","message":"Because it\u0027s an argument to this function and not always set to $PRIMARY_NODE, see L172 below.","commit_id":"4f4709da1d2158094667f41dfc3fb309205074b6"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"03cd9c3f32cb2a0879adfe1114bcb7c694b7bc2b","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    ovs_vxlan_bridge \"br_pub\" $primary_node $EXTERNAL_BRIDGE_MTU \"True\" 1 \\"},{"line_number":77,"context_line":"                    $FLOATING_HOST_PREFIX $FLOATING_HOST_MASK \\"},{"line_number":78,"context_line":"                    $sub_nodes"},{"line_number":79,"context_line":"    ovs_vxlan_bridge \"br_flat\" $primary_node $EXTERNAL_BRIDGE_MTU \"False\" 128 \\"},{"line_number":80,"context_line":"                    $sub_nodes"},{"line_number":81,"context_line":"    cat \u003c\u003cEOF \u003e\u003e\"$localrc\""},{"line_number":82,"context_line":"FLAT_INTERFACE\u003dbr_flat"}],"source_content_type":"text/x-sh","patch_set":7,"id":"fa6399be_02b7e339","line":79,"range":{"start_line":79,"start_character":31,"end_line":79,"end_character":65},"updated":"2016-10-11 17:04:49.000000000","message":"same!!","commit_id":"4f4709da1d2158094667f41dfc3fb309205074b6"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b0dfc80cad6e8785a51c7179d9c187ed02ba663b","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        if [[ \"$mode\" \u003d\u003d \"grenade\" ]]; then"},{"line_number":170,"context_line":"            localrc\u003d$BASE/new/grenade/devstack.localrc"},{"line_number":171,"context_line":"        fi"},{"line_number":172,"context_line":"        setup_nova_net_networking \"$localrc\" \"127.0.0.1\""},{"line_number":173,"context_line":"    elif [[ \"$DEVSTACK_GATE_TOPOLOGY\" \u003d\u003d \"multinode\" ]]; then"},{"line_number":174,"context_line":"        setup_multinode_connectivity $mode"},{"line_number":175,"context_line":"    fi"}],"source_content_type":"text/x-sh","patch_set":7,"id":"fa6399be_55c7c911","line":172,"updated":"2016-10-12 01:37:54.000000000","message":"This passes a value for $primary_node","commit_id":"4f4709da1d2158094667f41dfc3fb309205074b6"}],"functions.sh":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"1ebf39e3bed3af023aead013b28d9ad89429897c","unresolved":false,"context_lines":[{"line_number":1062,"context_line":"    local tunnel_overhead\u003d$2"},{"line_number":1063,"context_line":""},{"line_number":1064,"context_line":"    # Get the smallest local MTU"},{"line_number":1065,"context_line":"    local mtu\u003d$(ip link show | sed -ne \u0027s/.*mtu \\([0-9]\\+\\).*/\\1/p\u0027 | sort -n | head -1)"},{"line_number":1066,"context_line":""},{"line_number":1067,"context_line":"    # If using a local IPv6 address, need to set tunnel overhead accordingly"},{"line_number":1068,"context_line":"    if ip addr show | grep $primary_node | grep -q inet6; then"}],"source_content_type":"text/x-sh","patch_set":2,"id":"3a98d1f4_9dcc7b8a","line":1065,"updated":"2016-10-03 20:48:51.000000000","message":"We should specifically use the MTU of the primary node\u0027s interface right? We don\u0027t need to worry about the other interfaces.","commit_id":"c68b9bb6b5742c9891a7aa8e4b55d5a4d0167cdb"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"002e1547e48f7b246132c23e439fa48c62b8a2e1","unresolved":false,"context_lines":[{"line_number":1062,"context_line":"    local tunnel_overhead\u003d$2"},{"line_number":1063,"context_line":""},{"line_number":1064,"context_line":"    # Get the smallest local MTU"},{"line_number":1065,"context_line":"    local mtu\u003d$(ip link show | sed -ne \u0027s/.*mtu \\([0-9]\\+\\).*/\\1/p\u0027 | sort -n | head -1)"},{"line_number":1066,"context_line":""},{"line_number":1067,"context_line":"    # If using a local IPv6 address, need to set tunnel overhead accordingly"},{"line_number":1068,"context_line":"    if ip addr show | grep $primary_node | grep -q inet6; then"}],"source_content_type":"text/x-sh","patch_set":2,"id":"3a98d1f4_45a699ae","line":1065,"in_reply_to":"3a98d1f4_9dcc7b8a","updated":"2016-10-03 22:03:26.000000000","message":"I copied this from devstack-vm-gate.sh since I didn\u0027t want to change things, but yes, pulling the MTU off the interface $HOST_IP is on would be preferred.\n\nI guess I could make this something like \u0027ip addr show to $HOST_IP | ...\u0027 which should pull it just from the interface with the IP.  The one place it will break is when the IP isn\u0027t found, that could be just as fatal down the line in some other code?  I\u0027ll give it a shot.","commit_id":"c68b9bb6b5742c9891a7aa8e4b55d5a4d0167cdb"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"1ebf39e3bed3af023aead013b28d9ad89429897c","unresolved":false,"context_lines":[{"line_number":1069,"context_line":"        local address_overhead\u003d20"},{"line_number":1070,"context_line":"    else"},{"line_number":1071,"context_line":"        local address_overhead\u003d40"},{"line_number":1072,"context_line":"    fi"},{"line_number":1073,"context_line":"    return $((mtu - address_overhead - tunnel_overhead))"},{"line_number":1074,"context_line":"}"},{"line_number":1075,"context_line":""}],"source_content_type":"text/x-sh","patch_set":2,"id":"3a98d1f4_7d7faf14","line":1072,"updated":"2016-10-03 20:48:51.000000000","message":"I think these assignments are flipped. Should be 40 in the if and 20 in the else.","commit_id":"c68b9bb6b5742c9891a7aa8e4b55d5a4d0167cdb"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"002e1547e48f7b246132c23e439fa48c62b8a2e1","unresolved":false,"context_lines":[{"line_number":1069,"context_line":"        local address_overhead\u003d20"},{"line_number":1070,"context_line":"    else"},{"line_number":1071,"context_line":"        local address_overhead\u003d40"},{"line_number":1072,"context_line":"    fi"},{"line_number":1073,"context_line":"    return $((mtu - address_overhead - tunnel_overhead))"},{"line_number":1074,"context_line":"}"},{"line_number":1075,"context_line":""}],"source_content_type":"text/x-sh","patch_set":2,"id":"3a98d1f4_a5b3dd4b","line":1072,"in_reply_to":"3a98d1f4_7d7faf14","updated":"2016-10-03 22:03:26.000000000","message":"Well that was dumb","commit_id":"c68b9bb6b5742c9891a7aa8e4b55d5a4d0167cdb"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"1ebf39e3bed3af023aead013b28d9ad89429897c","unresolved":false,"context_lines":[{"line_number":1112,"context_line":"                            restart_service ${ovs_service}\""},{"line_number":1113,"context_line":"    local bridge_name\u003d$1"},{"line_number":1114,"context_line":"    local host_ip\u003d$2"},{"line_number":1115,"context_line":"    local mtu\u003d$3"},{"line_number":1116,"context_line":"    local set_ips\u003d$4"},{"line_number":1117,"context_line":"    local offset\u003d$5"},{"line_number":1118,"context_line":"    if [[ \"$set_ips\" \u003d\u003d \"True\" ]] ; then"}],"source_content_type":"text/x-sh","patch_set":2,"id":"3a98d1f4_dda7e3a4","line":1115,"updated":"2016-10-03 20:48:51.000000000","message":"Why not calculate the MTU here based on the argument passed in $2? then you can keep backward compatibility with the existing parameter list.","commit_id":"c68b9bb6b5742c9891a7aa8e4b55d5a4d0167cdb"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"002e1547e48f7b246132c23e439fa48c62b8a2e1","unresolved":false,"context_lines":[{"line_number":1112,"context_line":"                            restart_service ${ovs_service}\""},{"line_number":1113,"context_line":"    local bridge_name\u003d$1"},{"line_number":1114,"context_line":"    local host_ip\u003d$2"},{"line_number":1115,"context_line":"    local mtu\u003d$3"},{"line_number":1116,"context_line":"    local set_ips\u003d$4"},{"line_number":1117,"context_line":"    local offset\u003d$5"},{"line_number":1118,"context_line":"    if [[ \"$set_ips\" \u003d\u003d \"True\" ]] ; then"}],"source_content_type":"text/x-sh","patch_set":2,"id":"3a98d1f4_d24c2da0","line":1115,"in_reply_to":"3a98d1f4_dda7e3a4","updated":"2016-10-03 22:03:26.000000000","message":"We also need the mtu over in the other file since EXTERNAL_BRIDGE_MTU is used other places.","commit_id":"c68b9bb6b5742c9891a7aa8e4b55d5a4d0167cdb"}]}
