| 933 | } |
| 934 | |
| 935 | static int |
| 936 | ini_parse_handler(void* user, const char* section, const char* name, |
| 937 | const char* value) |
| 938 | { |
| 939 | struct ff_config *pconfig = (struct ff_config*)user; |
| 940 | |
| 941 | printf("[%s]: %s=%s\n", section, name, value); |
| 942 | |
| 943 | #define MATCH(s, n) strcmp(section, s) == 0 && strcmp(name, n) == 0 |
| 944 | if (MATCH("dpdk", "log_level")) { |
| 945 | pconfig->dpdk.log_level = atoi(value); |
| 946 | } else if (MATCH("dpdk", "fstack_log_level")) { |
| 947 | pconfig->log.level = atoi(value); |
| 948 | } else if (MATCH("dpdk", "fstack_log_file_prefix")) { |
| 949 | pconfig->log.dir = strdup(value); |
| 950 | } else if (MATCH("dpdk", "channel")) { |
| 951 | pconfig->dpdk.nb_channel = atoi(value); |
| 952 | } else if (MATCH("dpdk", "memory")) { |
| 953 | pconfig->dpdk.memory = atoi(value); |
| 954 | } else if (MATCH("dpdk", "no_huge")) { |
| 955 | pconfig->dpdk.no_huge = atoi(value); |
| 956 | } else if (MATCH("dpdk", "lcore_mask")) { |
| 957 | pconfig->dpdk.lcore_mask = strdup(value); |
| 958 | return parse_lcore_mask(pconfig, pconfig->dpdk.lcore_mask); |
| 959 | } else if (MATCH("dpdk", "base_virtaddr")) { |
| 960 | pconfig->dpdk.base_virtaddr= strdup(value); |
| 961 | } else if (MATCH("dpdk", "file_prefix")) { |
| 962 | pconfig->dpdk.file_prefix = strdup(value); |
| 963 | } else if (MATCH("dpdk", "allow")) { |
| 964 | pconfig->dpdk.allow = strdup(value); |
| 965 | } else if (MATCH("dpdk", "port_list")) { |
| 966 | return parse_port_list(pconfig, value); |
| 967 | } else if (MATCH("dpdk", "nb_vdev")) { |
| 968 | pconfig->dpdk.nb_vdev = atoi(value); |
| 969 | } else if (MATCH("dpdk", "nb_bond")) { |
| 970 | pconfig->dpdk.nb_bond = atoi(value); |
| 971 | } else if (MATCH("dpdk", "promiscuous")) { |
| 972 | pconfig->dpdk.promiscuous = atoi(value); |
| 973 | } else if (MATCH("dpdk", "numa_on")) { |
| 974 | pconfig->dpdk.numa_on = atoi(value); |
| 975 | } else if (MATCH("dpdk", "tso")) { |
| 976 | pconfig->dpdk.tso = atoi(value); |
| 977 | } else if (MATCH("dpdk", "tx_csum_offoad_skip")) { |
| 978 | pconfig->dpdk.tx_csum_offoad_skip = atoi(value); |
| 979 | } else if (MATCH("dpdk", "vlan_strip")) { |
| 980 | pconfig->dpdk.vlan_strip = atoi(value); |
| 981 | } else if (MATCH("dpdk", "vlan_filter")) { |
| 982 | return parse_vlan_filter_list(pconfig, value); |
| 983 | } else if (MATCH("dpdk", "idle_sleep")) { |
| 984 | pconfig->dpdk.idle_sleep = atoi(value); |
| 985 | } else if (MATCH("dpdk", "pkt_tx_delay")) { |
| 986 | pconfig->dpdk.pkt_tx_delay = atoi(value); |
| 987 | } else if (MATCH("dpdk", "symmetric_rss")) { |
| 988 | pconfig->dpdk.symmetric_rss = atoi(value); |
| 989 | } else if (MATCH("kni", "enable")) { |
| 990 | pconfig->kni.enable= atoi(value); |
| 991 | } else if (MATCH("kni", "console_packets_ratelimit")) { |
| 992 | pconfig->kni.console_packets_ratelimit= atoi(value); |
nothing calls this directly
no test coverage detected