summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build/demo3/CMakeFiles/demo3.dir/main.c.obin12176 -> 0 bytes
-rw-r--r--build/demo3/CMakeFiles/demo3.dir/main.c.o.d35
-rwxr-xr-xbuild/demo3/demo3bin27376 -> 0 bytes
-rw-r--r--build/matt/CMakeFiles/maat.dir/main.c.obin11440 -> 0 bytes
-rw-r--r--build/matt/CMakeFiles/maat.dir/main.c.o.d35
-rwxr-xr-xbuild/matt/maatbin27216 -> 0 bytes
-rw-r--r--demo4/maat_json_cb.json10
-rw-r--r--demo4/maat_json_cb.json_iris_tmp/WANNAT_COMPILE.local4
-rw-r--r--demo4/maat_json_cb.json_iris_tmp/WANNAT_OBJ_IP_ADDR.local8
-rw-r--r--demo4/main.c126
-rw-r--r--demo4/sample_test.log0
-rw-r--r--demo4/sample_test.log.2024-04-2531
-rw-r--r--demo4/table_info_cb.conf10
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
deleted file mode 100644
index 982a054..0000000
--- a/build/demo3/CMakeFiles/demo3.dir/main.c.o
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index 5fe3dad..0000000
--- a/build/demo3/demo3
+++ /dev/null
Binary files differ
diff --git a/build/matt/CMakeFiles/maat.dir/main.c.o b/build/matt/CMakeFiles/maat.dir/main.c.o
deleted file mode 100644
index a6721fc..0000000
--- a/build/matt/CMakeFiles/maat.dir/main.c.o
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index 5c21d99..0000000
--- a/build/matt/maat
+++ /dev/null
Binary files differ
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