X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=roles%2Fsriov_nodes%2Ftemplates%2Fsriov.conf.j2;fp=roles%2Fsriov_nodes%2Ftemplates%2Fsriov.conf.j2;h=1a2a8f390df1aa5dae68b5e60a421d06b577c0da;hb=74a49ba6ef2ea715fa492db0bcd85c30398688e8;hp=0000000000000000000000000000000000000000;hpb=a936af362724cca0c5dc2c424902d398f9833410;p=ta%2Finfra-ansible.git diff --git a/roles/sriov_nodes/templates/sriov.conf.j2 b/roles/sriov_nodes/templates/sriov.conf.j2 new file mode 100644 index 0000000..1a2a8f3 --- /dev/null +++ b/roles/sriov_nodes/templates/sriov.conf.j2 @@ -0,0 +1,83 @@ +{%- set host_network_profiles_list = hosts[ansible_hostname]['network_profiles'] -%} +{%- set sriov_ifaces = [] -%} +{%- set trusted_ifaces = [] -%} +{%- set vf_counts = [] -%} +{%- if 'sriov_provider_networks' in network_profiles[host_network_profiles_list[0]] -%} + {%- set sriov_provider_networks = network_profiles[host_network_profiles_list[0]]['sriov_provider_networks'] -%} + {%- for net,net_info in sriov_provider_networks.iteritems() -%} + {%- if 'trusted' in net_info -%} + {%- set is_trusted = net_info['trusted'] -%} + {%- else -%} + {%- set is_trusted = False -%} + {%- endif -%} + {%- if 'vf_count' in net_info -%} + {%- set vf_count = net_info['vf_count'] -%} + {%- else -%} + {%- set vf_count = 0 -%} + {%- endif -%} + {%- for iface in net_info['interfaces'] -%} + {%- if sriov_ifaces.append(iface) -%}{%- endif -%} + {%- if is_trusted -%} + {%- if trusted_ifaces.append(iface) -%}{%- endif -%} + {%- endif -%} + {%- if vf_count > 0 -%} + {%- set count_info = iface ~ ':' ~ vf_count -%} + {%- if vf_counts.append(count_info) -%}{%- endif -%} + {%- endif -%} + {%- endfor -%} + {%- endfor -%} +{%- endif -%} +{%- set offloaded_ifaces = [] -%} +{%- set trusted_offloaded_ifaces = [] -%} +{%- set vf_counts_offloaded = [] -%} +{%- if 'provider_network_interfaces' in network_profiles[host_network_profiles_list[0]] -%} + {%- set provider_network_interfaces = network_profiles[host_network_profiles_list[0]]['provider_network_interfaces'] -%} + {%- set bonding_interfaces = network_profiles[host_network_profiles_list[0]]['bonding_interfaces'] -%} + {%- for net,net_info in provider_network_interfaces.iteritems() -%} + {% if net_info['type'] == 'ovs-offload-sriov' -%} + {%- if 'trusted' in net_info -%} + {%- set is_trusted = net_info['trusted'] -%} + {%- else -%} + {%- set is_trusted = False -%} + {%- endif -%} + {%- if 'vf_count' in net_info -%} + {%- set vf_count = net_info['vf_count'] -%} + {%- else -%} + {%- set vf_count = 0 -%} + {%- endif -%} + {%- if net in bonding_interfaces -%} + {%- for iface in bonding_interfaces[net] -%} + {%- if sriov_ifaces.append(iface) -%}{%- endif -%} + {%- if offloaded_ifaces.append(iface) -%}{%- endif -%} + {%- if is_trusted -%} +{#- {%- if trusted_offloaded_ifaces.append(iface) -%}{%- endif -%} -#} + {%- if trusted_ifaces.append(iface) -%}{%- endif -%} + {%- endif -%} + {%- if vf_count > 0 -%} + {%- set count_info = iface ~ ':' ~ vf_count -%} +{#- {%- if vf_counts_offloaded.append(count_info) -%}{%- endif -%} -#} + {%- if vf_counts.append(count_info) -%}{%- endif -%} + {%- endif -%} + {%- endfor -%} + {%- else -%} + {%- if offloaded_ifaces.append(net) -%}{%- endif -%} + {%- if sriov_ifaces.append(net) -%}{%- endif -%} + {%- if is_trusted -%} + {%- if trusted_offloaded_ifaces.append(net) -%}{%- endif -%} + {%- if trusted_ifaces.append(net) -%}{%- endif -%} + {%- endif -%} + {%- if vf_count > 0 -%} + {%- set count_info = net ~ ':' ~ vf_count -%} + {%- if vf_counts_offloaded.append(count_info) -%}{%- endif -%} + {%- if vf_counts.append(count_info) -%}{%- endif -%} + {%- endif -%} + {% endif -%} + {%- endif -%} + {%- endfor -%} +{%- endif -%} +SRIOV_INTERFACES="{{sriov_ifaces | join(' ')}}" +SRIOV_TRUSTED_INTERFACES="{{trusted_ifaces | join(' ')}}" +SRIOV_VF_COUNTS="{{vf_counts | join(' ')}}" +SRIOV_INTERFACES_OFFLOADED="{{offloaded_ifaces | join(' ')}}" +{#- SRIOV_TRUSTED_INTERFACES_OFFLOADED="{{trusted_offloaded_ifaces | join(' ')}}" -#} +{#- SRIOV_VF_COUNTS_OFFLOADED="{{vf_counts_offloaded | join(' ')}}" -#}