diff options
| -rw-r--r-- | build/demo3/CMakeFiles/demo3.dir/main.c.o | bin | 12176 -> 0 bytes | |||
| -rw-r--r-- | build/demo3/CMakeFiles/demo3.dir/main.c.o.d | 35 | ||||
| -rwxr-xr-x | build/demo3/demo3 | bin | 27376 -> 0 bytes | |||
| -rw-r--r-- | build/matt/CMakeFiles/maat.dir/main.c.o | bin | 11440 -> 0 bytes | |||
| -rw-r--r-- | build/matt/CMakeFiles/maat.dir/main.c.o.d | 35 | ||||
| -rwxr-xr-x | build/matt/maat | bin | 27216 -> 0 bytes | |||
| -rw-r--r-- | demo4/maat_json_cb.json | 10 | ||||
| -rw-r--r-- | demo4/maat_json_cb.json_iris_tmp/WANNAT_COMPILE.local | 4 | ||||
| -rw-r--r-- | demo4/maat_json_cb.json_iris_tmp/WANNAT_OBJ_IP_ADDR.local | 8 | ||||
| -rw-r--r-- | demo4/main.c | 126 | ||||
| -rw-r--r-- | demo4/sample_test.log | 0 | ||||
| -rw-r--r-- | demo4/sample_test.log.2024-04-25 | 31 | ||||
| -rw-r--r-- | demo4/table_info_cb.conf | 10 |
13 files changed, 115 insertions, 144 deletions
diff --git a/build/demo3/CMakeFiles/demo3.dir/main.c.o b/build/demo3/CMakeFiles/demo3.dir/main.c.o Binary files differdeleted file mode 100644 index 982a054..0000000 --- a/build/demo3/CMakeFiles/demo3.dir/main.c.o +++ /dev/null diff --git a/build/demo3/CMakeFiles/demo3.dir/main.c.o.d b/build/demo3/CMakeFiles/demo3.dir/main.c.o.d deleted file mode 100644 index 3a68ca3..0000000 --- a/build/demo3/CMakeFiles/demo3.dir/main.c.o.d +++ /dev/null @@ -1,35 +0,0 @@ -demo3/CMakeFiles/demo3.dir/main.c.o: /root/Git/demo/demo3/main.c \ - /usr/include/stdc-predef.h /opt/MESA/include/MESA/maat.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \ - /usr/include/stdint.h /usr/include/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/sys/cdefs.h \ - /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \ - /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \ - /usr/include/bits/types.h /usr/include/bits/typesizes.h \ - /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \ - /usr/include/bits/stdint-uintn.h /usr/include/netinet/in.h \ - /usr/include/sys/socket.h /usr/include/bits/types/struct_iovec.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \ - /usr/include/bits/socket.h /usr/include/sys/types.h \ - /usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \ - /usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \ - /usr/include/endian.h /usr/include/bits/endian.h \ - /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \ - /usr/include/sys/select.h /usr/include/bits/select.h \ - /usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \ - /usr/include/bits/types/struct_timeval.h \ - /usr/include/bits/types/struct_timespec.h \ - /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \ - /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/socket_type.h \ - /usr/include/bits/sockaddr.h /usr/include/asm/socket.h \ - /usr/include/asm-generic/socket.h /usr/include/asm/sockios.h \ - /usr/include/asm-generic/sockios.h \ - /usr/include/bits/types/struct_osockaddr.h /usr/include/bits/in.h \ - /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \ - /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \ - /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \ - /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \ - /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \ - /usr/include/arpa/inet.h /usr/include/assert.h /usr/include/string.h \ - /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \ - /usr/include/strings.h diff --git a/build/demo3/demo3 b/build/demo3/demo3 Binary files differdeleted file mode 100755 index 5fe3dad..0000000 --- a/build/demo3/demo3 +++ /dev/null diff --git a/build/matt/CMakeFiles/maat.dir/main.c.o b/build/matt/CMakeFiles/maat.dir/main.c.o Binary files differdeleted file mode 100644 index a6721fc..0000000 --- a/build/matt/CMakeFiles/maat.dir/main.c.o +++ /dev/null diff --git a/build/matt/CMakeFiles/maat.dir/main.c.o.d b/build/matt/CMakeFiles/maat.dir/main.c.o.d deleted file mode 100644 index 0089db1..0000000 --- a/build/matt/CMakeFiles/maat.dir/main.c.o.d +++ /dev/null @@ -1,35 +0,0 @@ -matt/CMakeFiles/maat.dir/main.c.o: /root/Git/demo/matt/main.c \ - /usr/include/stdc-predef.h /opt/MESA/include/MESA/maat.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \ - /usr/include/stdint.h /usr/include/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/sys/cdefs.h \ - /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \ - /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \ - /usr/include/bits/types.h /usr/include/bits/typesizes.h \ - /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \ - /usr/include/bits/stdint-uintn.h /usr/include/netinet/in.h \ - /usr/include/sys/socket.h /usr/include/bits/types/struct_iovec.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \ - /usr/include/bits/socket.h /usr/include/sys/types.h \ - /usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \ - /usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \ - /usr/include/endian.h /usr/include/bits/endian.h \ - /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \ - /usr/include/sys/select.h /usr/include/bits/select.h \ - /usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \ - /usr/include/bits/types/struct_timeval.h \ - /usr/include/bits/types/struct_timespec.h \ - /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \ - /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/socket_type.h \ - /usr/include/bits/sockaddr.h /usr/include/asm/socket.h \ - /usr/include/asm-generic/socket.h /usr/include/asm/sockios.h \ - /usr/include/asm-generic/sockios.h \ - /usr/include/bits/types/struct_osockaddr.h /usr/include/bits/in.h \ - /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \ - /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \ - /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \ - /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \ - /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \ - /usr/include/arpa/inet.h /usr/include/assert.h /usr/include/string.h \ - /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \ - /usr/include/strings.h diff --git a/build/matt/maat b/build/matt/maat Binary files differdeleted file mode 100755 index 5c21d99..0000000 --- a/build/matt/maat +++ /dev/null diff --git a/demo4/maat_json_cb.json b/demo4/maat_json_cb.json index b35a2c5..3ada0cd 100644 --- a/demo4/maat_json_cb.json +++ b/demo4/maat_json_cb.json @@ -20,17 +20,17 @@ { "table_name": "WANNAT_OBJ_IP_ADDR", "table_content": [ - "201\t2\t4\tCIDR\t20.20.20.20\t32\t[0,65535]\t1\t0", - "202\t2\t4\tCIDR\t8.8.8.8\t32\t[0,65535]\t1\t0", - "203\t3\t4\tCIDR\t100.0.0.0\t24\t[0,65535]\t1\t0", - "204\t3\t4\tCIDR\t100.0.1.0\t24\t[0,65535]\t1\t0" + "201\t2\t4\tCIDR\t20.20.20.20\t32\t0-65535\t1\t0", + "202\t2\t4\tCIDR\t8.8.8.8\t32\t0-65535\t1\t0", + "203\t3\t4\tCIDR\t100.0.0.0\t24\t0-65535\t1\t0", + "204\t3\t4\tCIDR\t100.0.1.0\t24\t0-65535\t1\t0" ] }, { "table_name": "WANNAT_COMPILE", "table_content": [ "301\t0\t1\t0\t2\t{}\t{\"ip_object_ids\":[203,204], \"translate_type\":\"never\", \"time_interval\":123, \"connection_count\":1243}\t1\t1\t0", - "302\t0\t2\t0\t2\t{}\t{\"ue_object_ids\":[102], \"failover\":\"drop\"}\t1\t1\t0" + "302\t0\t2\t0\t2\t{}\t{\"ue_object_ids\":[102], \"failover\":\"drop\"}\t2\t1\t0" ] } ] diff --git a/demo4/maat_json_cb.json_iris_tmp/WANNAT_COMPILE.local b/demo4/maat_json_cb.json_iris_tmp/WANNAT_COMPILE.local index 7dd67ae..117ea92 100644 --- a/demo4/maat_json_cb.json_iris_tmp/WANNAT_COMPILE.local +++ b/demo4/maat_json_cb.json_iris_tmp/WANNAT_COMPILE.local @@ -1,3 +1,3 @@ 0000000002 -301 0 1 0 2 {} {"ip_object_ids":[203,204], "translate_type":"never", "time_interval":123, "connection_count":1243} 8 1 0 -302 0 2 0 2 {} {"ue_object_ids":[102], "failover":"drop"} 8 1 0 +301 0 1 0 2 {} {"ip_object_ids":[203,204], "translate_type":"never", "time_interval":123, "connection_count":1243} 1 1 0 +302 0 2 0 2 {} {"ue_object_ids":[102], "failover":"drop"} 2 1 0 diff --git a/demo4/maat_json_cb.json_iris_tmp/WANNAT_OBJ_IP_ADDR.local b/demo4/maat_json_cb.json_iris_tmp/WANNAT_OBJ_IP_ADDR.local index 28d411a..0f194b1 100644 --- a/demo4/maat_json_cb.json_iris_tmp/WANNAT_OBJ_IP_ADDR.local +++ b/demo4/maat_json_cb.json_iris_tmp/WANNAT_OBJ_IP_ADDR.local @@ -1,5 +1,5 @@ 0000000004 -201 2 4 CIDR 20.20.20.20 32 [0,65535] 1 0 -202 2 4 CIDR 8.8.8.8 32 [0,65535] 1 0 -203 3 4 CIDR 100.0.0.0 24 [0,65535] 1 0 -204 3 4 CIDR 100.0.1.0 24 [0,65535] 1 0 +201 2 4 CIDR 20.20.20.20 32 0-65535 1 0 +202 2 4 CIDR 8.8.8.8 32 0-65535 1 0 +203 3 4 CIDR 100.0.0.0 24 0-65535 1 0 +204 3 4 CIDR 100.0.1.0 24 0-65535 1 0 diff --git a/demo4/main.c b/demo4/main.c index d6fd1d4..2eb3e51 100644 --- a/demo4/main.c +++ b/demo4/main.c @@ -4,66 +4,61 @@ #include <assert.h> #include <stddef.h> #include <string.h> +#include <stdlib.h> #define ARRAY_SIZE 16 +#define ALLOC(type, number) ((type *)calloc(sizeof(type), number)) const char *json_filename = "/root/Git/demo/demo4/maat_json_cb.json"; const char *table_info_path = "/root/Git/demo/demo4/table_info_cb.conf"; -// struct ip_plugin_ud { -// long long rule_id; -// char *buffer; -// size_t buf_len; -// }; -// void ip_plugin_ex_new_cb(const char *table_name, int table_id, const char *key, -// const char *table_line, void **ad, long argl, void *argp) -// { -// int *counter = (int *)argp; -// size_t column_offset=0, column_len=0; -// struct ip_plugin_ud *ud = ALLOC(struct ip_plugin_ud, 1); - -// int ret = get_column_pos(table_line, 1, &column_offset, &column_len); -// EXPECT_EQ(ret, 0); - -// ud->rule_id = atoll(table_line + column_offset); - -// ret = get_column_pos(table_line, 5, &column_offset, &column_len); -// EXPECT_EQ(ret, 0); - -// ud->buffer = ALLOC(char, column_len + 1); -// strncpy(ud->buffer, table_line + column_offset, column_len); - -// ud->buf_len = column_len + 1; -// *ad = ud; -// (*counter)++; -// } - -// void ip_plugin_ex_free_cb(int table_id, void **ad, long argl, void *argp) -// { -// struct ip_plugin_ud *ud = (struct ip_plugin_ud *)(*ad); - -// ud->rule_id = 0; -// memset(ud->buffer, 0, ud->buf_len); -// ud->buf_len = 0; - -// free(ud->buffer); -// free(ud); -// *ad = NULL; -// } - -// void ip_plugin_ex_dup_cb(int table_id, void **to, void **from, long argl, void *argp) -// { -// struct ip_plugin_ud *ud = (struct ip_plugin_ud *)(*from); - -// *to = ud; -// } +struct dyn_ue_id_ip +{ + int id; + int addr_type; + char ip[40]; + char ue_id[11]; + int is_valid; +}; + +void ip_plugin_ex_new_cb(const char *table_name, int table_id, const char *key, const char *table_line, void **ad, + long argl, void *argp) +{ + int *counter = (int *)argp; + + char op_time[20] = {0}; + + struct dyn_ue_id_ip *ud = ALLOC(struct dyn_ue_id_ip, 1); + + int ret = sscanf(table_line, "%d\t%d\t%10s\t%39s\t%d\t%20s", &(ud->id), &(ud->addr_type), ud->ip, ud->ue_id, + &(ud->is_valid), &op_time); + + *ad = ud; + (*counter)++; +} + +void ip_plugin_ex_free_cb(int table_id, void **ad, long argl, void *argp) +{ + struct dyn_ue_id_ip *ud = (struct dyn_ue_id_ip *)(*ad); + + memset(ud, 0, sizeof(struct dyn_ue_id_ip)); + free(ud); + *ad = NULL; +} + +void ip_plugin_ex_dup_cb(int table_id, void **to, void **from, long argl, void *argp) +{ + struct dyn_ue_id_ip *ud = (struct dyn_ue_id_ip *)(*from); + + *to = ud; +} int main() { /* initialize maat options which will be used by maat_new() */ struct maat_options *opts = maat_options_new(); maat_options_set_json_file(opts, json_filename); - maat_options_set_logger(opts, "./sample_test.log", LOG_LEVEL_INFO); + maat_options_set_logger(opts, "/root/Git/demo/demo4/sample_test.log", LOG_LEVEL_INFO); /* create maat instance, rules in table_info.conf will be loaded. */ struct maat *maat_instance = maat_new(opts, table_info_path); @@ -74,13 +69,23 @@ int main() int table_id = maat_get_table_id(maat_instance, table_name); assert(table_id == 0); /* defined in table_info.conf */ - // int ret = maat_plugin_table_ex_schema_register(maat_inst, table_name, - // ip_plugin_ex_new_cb, - // ip_plugin_ex_free_cb, - // ip_plugin_ex_dup_cb, - // 0, &ip_plugin_ex_data_counter); - // EXPECT_EQ(ret, 0); - // EXPECT_EQ(ip_plugin_ex_data_counter, 4); + int plugin_ex_data_counter = 0; + + int ret = maat_plugin_table_ex_schema_register(maat_instance, table_name, ip_plugin_ex_new_cb, ip_plugin_ex_free_cb, + ip_plugin_ex_dup_cb, 0, &plugin_ex_data_counter); + assert(ret == 0); + assert(plugin_ex_data_counter == 2); + + uint32_t ipv4_addr1; + ret = inet_pton(AF_INET, "10.0.0.1", &ipv4_addr1); + assert(ret == 1); + + struct dyn_ue_id_ip *ud = NULL; + ud = (struct dyn_ue_id_ip *)maat_plugin_table_get_ex_data(maat_instance, table_id, (char *)&ipv4_addr1, + sizeof(ipv4_addr1)); + + assert(ud != NULL); + assert(ud->id == 1); // struct ip_addr ipv4; // ipv4.ip_type = IPv4; @@ -89,7 +94,7 @@ int main() // /* get ex_data */ // struct ip_plugin_ud *results[ARRAY_SIZE]; - // ret = maat_ip_plugin_table_get_ex_data(maat_inst, table_id, &ipv4, + // ret = maat_ip_plugin_table_get_ex_data(maat_inst, table_id, &ipv4, // (void **)results, ARRAY_SIZE); // EXPECT_EQ(ret, 2); // EXPECT_EQ(results[0]->rule_id, 101); @@ -100,14 +105,13 @@ int main() // inet_pton(AF_INET6, "2001:db8:1234::5210", &(ipv6.ipv6)); // memset(results, 0, sizeof(results)); - // ret = maat_ip_plugin_table_get_ex_data(maat_inst, table_id, &ipv6, + // ret = maat_ip_plugin_table_get_ex_data(maat_inst, table_id, &ipv6, // (void**)results, ARRAY_SIZE); - // EXPECT_EQ(ret, 2); - // EXPECT_EQ(results[0]->rule_id, 104); - // EXPECT_EQ(results[1]->rule_id, 103); + // EXPECT_EQ(ret, 2); + // EXPECT_EQ(results[0]->rule_id, 104); + // EXPECT_EQ(results[1]->rule_id, 103); // maat_state_free(state); return 0; } - diff --git a/demo4/sample_test.log b/demo4/sample_test.log new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/demo4/sample_test.log diff --git a/demo4/sample_test.log.2024-04-25 b/demo4/sample_test.log.2024-04-25 new file mode 100644 index 0000000..f3eec23 --- /dev/null +++ b/demo4/sample_test.log.2024-04-25 @@ -0,0 +1,31 @@ +Thu Apr 25 08:36:11 2024, INFO, maat.table(7355), successfully register physical table[WANNAT_DYN_UE_ID_IP]->table_id:0 +Thu Apr 25 08:36:11 2024, INFO, maat.table(7355), successfully register physical table[WANNAT_OBJ_UE_ID]->table_id:1 +Thu Apr 25 08:36:11 2024, INFO, maat.table(7355), successfully register physical table[WANNAT_OBJ_IP_ADDR]->table_id:2 +Thu Apr 25 08:36:11 2024, INFO, maat.table(7355), successfully register physical table[WANNAT_COMPILE]->table_id:3 +Thu Apr 25 08:36:11 2024, INFO, maat.table(7355), default compile table id: -1 +Thu Apr 25 08:36:11 2024, INFO, maat.table(7355), group2group table id: -1 +Thu Apr 25 08:36:11 2024, INFO, maat.config_monitor(7355), Maat initial with JSON file /root/Git/demo/demo4/maat_json_cb.json, formating... +Thu Apr 25 08:36:11 2024, INFO, maat.config_monitor(7355), JSON file /root/Git/demo/demo4/maat_json_cb.json md5: 99c4c248f18e587bd8de8312bd51826c, generate index file /root/Git/demo/demo4/maat_json_cb.json_iris_tmp/index OK +Thu Apr 25 08:36:11 2024, INFO, maat.config_monitor(7355), load /root/Git/demo/demo4/maat_json_cb.json_iris_tmp/index/full_config_index.0000000001 +Thu Apr 25 08:36:11 2024, INFO, maat.rule(7355), table:<WANNAT_DYN_UE_ID_IP> rule_count:2 +Thu Apr 25 08:36:11 2024, INFO, maat.rule(7355), table:<WANNAT_OBJ_UE_ID> rule_count:2 +Thu Apr 25 08:36:11 2024, INFO, maat.rule(7355), table:<WANNAT_OBJ_IP_ADDR> rule_count:4 +Thu Apr 25 08:36:11 2024, INFO, maat.rule(7355), table:<WANNAT_COMPILE> rule_count:2 +Thu Apr 25 08:36:11 2024, INFO, maat.rule(7355), Full config version 1 load 10 entries complete +Thu Apr 25 08:37:23 2024, INFO, maat.plugin(7355), table[WANNAT_DYN_UE_ID_IP] commit 2 plugin rules, version:0 +Thu Apr 25 09:13:31 2024, INFO, maat.table(7824), successfully register physical table[WANNAT_DYN_UE_ID_IP]->table_id:0 +Thu Apr 25 09:13:31 2024, INFO, maat.table(7824), successfully register physical table[WANNAT_OBJ_UE_ID]->table_id:1 +Thu Apr 25 09:13:31 2024, INFO, maat.table(7824), successfully register physical table[WANNAT_OBJ_IP_ADDR]->table_id:2 +Thu Apr 25 09:13:31 2024, INFO, maat.table(7824), successfully register physical table[WANNAT_COMPILE]->table_id:3 +Thu Apr 25 09:13:31 2024, INFO, maat.table(7824), default compile table id: -1 +Thu Apr 25 09:13:31 2024, INFO, maat.table(7824), group2group table id: -1 +Thu Apr 25 09:13:31 2024, INFO, maat.config_monitor(7824), Maat initial with JSON file /root/Git/demo/demo4/maat_json_cb.json, formating... +Thu Apr 25 09:13:31 2024, INFO, maat.config_monitor(7824), JSON file /root/Git/demo/demo4/maat_json_cb.json md5: 99c4c248f18e587bd8de8312bd51826c, generate index file /root/Git/demo/demo4/maat_json_cb.json_iris_tmp/index OK +Thu Apr 25 09:13:31 2024, INFO, maat.config_monitor(7824), load /root/Git/demo/demo4/maat_json_cb.json_iris_tmp/index/full_config_index.0000000001 +Thu Apr 25 09:13:31 2024, INFO, maat.rule(7824), table:<WANNAT_DYN_UE_ID_IP> rule_count:2 +Thu Apr 25 09:13:31 2024, INFO, maat.rule(7824), table:<WANNAT_OBJ_UE_ID> rule_count:2 +Thu Apr 25 09:13:31 2024, INFO, maat.rule(7824), table:<WANNAT_OBJ_IP_ADDR> rule_count:4 +Thu Apr 25 09:13:31 2024, INFO, maat.rule(7824), table:<WANNAT_COMPILE> rule_count:2 +Thu Apr 25 09:13:31 2024, INFO, maat.rule(7824), Full config version 1 load 10 entries complete +Thu Apr 25 09:13:40 2024, INFO, maat.plugin(7824), table[WANNAT_DYN_UE_ID_IP] commit 2 plugin rules, version:0 +Thu Apr 25 09:13:40 2024, INFO, maat.rule(7854), rule_monitor_loop thread still alive......... diff --git a/demo4/table_info_cb.conf b/demo4/table_info_cb.conf index 81ba965..beb3e50 100644 --- a/demo4/table_info_cb.conf +++ b/demo4/table_info_cb.conf @@ -6,7 +6,7 @@ "valid_column":5, "custom": { "key_type":"ip_addr", - "addr_type":1, + "addr_type":2, "key":3 } }, @@ -46,7 +46,13 @@ "key_type":"integer", "key_len":4, "key": 1, - "user_region":7 + "service":2, + "action":3, + "do_blacklist":4, + "do_log":5, + "tags":6, + "user_region":7, + "clause_num":8 } } ]
\ No newline at end of file |
