| 1042 | } |
| 1043 | |
| 1044 | static int |
| 1045 | dpdk_args_setup(struct ff_config *cfg) |
| 1046 | { |
| 1047 | int n = 0, i; |
| 1048 | dpdk_argv[n++] = strdup("f-stack"); |
| 1049 | char temp[DPDK_CONFIG_MAXLEN] = {0}, temp2[DPDK_CONFIG_MAXLEN] = {0}; |
| 1050 | |
| 1051 | if (cfg->dpdk.no_huge) { |
| 1052 | dpdk_argv[n++] = strdup("--no-huge"); |
| 1053 | } |
| 1054 | if (cfg->dpdk.proc_mask) { |
| 1055 | sprintf(temp, "-c%s", cfg->dpdk.proc_mask); |
| 1056 | dpdk_argv[n++] = strdup(temp); |
| 1057 | } |
| 1058 | if (cfg->dpdk.nb_channel) { |
| 1059 | sprintf(temp, "-n%d", cfg->dpdk.nb_channel); |
| 1060 | dpdk_argv[n++] = strdup(temp); |
| 1061 | } |
| 1062 | if (cfg->dpdk.memory) { |
| 1063 | sprintf(temp, "-m%d", cfg->dpdk.memory); |
| 1064 | dpdk_argv[n++] = strdup(temp); |
| 1065 | } |
| 1066 | if (cfg->dpdk.log_level) { |
| 1067 | sprintf(temp, "--log-level=%d", cfg->dpdk.log_level); |
| 1068 | dpdk_argv[n++] = strdup(temp); |
| 1069 | } |
| 1070 | if (cfg->dpdk.proc_type) { |
| 1071 | sprintf(temp, "--proc-type=%s", cfg->dpdk.proc_type); |
| 1072 | dpdk_argv[n++] = strdup(temp); |
| 1073 | } |
| 1074 | if (cfg->dpdk.base_virtaddr) { |
| 1075 | sprintf(temp, "--base-virtaddr=%s", cfg->dpdk.base_virtaddr); |
| 1076 | dpdk_argv[n++] = strdup(temp); |
| 1077 | } |
| 1078 | if (cfg->dpdk.file_prefix) { |
| 1079 | sprintf(temp, "--file-prefix=container-%s", cfg->dpdk.file_prefix); |
| 1080 | dpdk_argv[n++] = strdup(temp); |
| 1081 | } |
| 1082 | if (cfg->dpdk.allow) { |
| 1083 | char* token; |
| 1084 | char* rest = cfg->dpdk.allow; |
| 1085 | |
| 1086 | while ((token = strtok_r(rest, ",", &rest))){ |
| 1087 | sprintf(temp, "--allow=%s", token); |
| 1088 | dpdk_argv[n++] = strdup(temp); |
| 1089 | } |
| 1090 | } |
| 1091 | |
| 1092 | if (cfg->dpdk.nb_vdev) { |
| 1093 | for (i=0; i<cfg->dpdk.nb_vdev; i++) { |
| 1094 | sprintf(temp, "--vdev=virtio_user%d,path=%s", |
| 1095 | cfg->dpdk.vdev_cfgs[i].vdev_id, |
| 1096 | cfg->dpdk.vdev_cfgs[i].path); |
| 1097 | if (cfg->dpdk.vdev_cfgs[i].nb_queues) { |
| 1098 | sprintf(temp2, ",queues=%u", |
| 1099 | cfg->dpdk.vdev_cfgs[i].nb_queues); |
| 1100 | strcat(temp, temp2); |
| 1101 | } |
no test coverage detected