]> git.ipfire.org Git - thirdparty/libnftnl.git/commitdiff
src: json: remove spaces
authorÁlvaro Neira Ayuso <alvaroneay@gmail.com>
Sun, 13 Oct 2013 19:52:34 +0000 (21:52 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Thu, 17 Oct 2013 08:03:37 +0000 (10:03 +0200)
Remove all the spaces from the JSON output to reduce the size
of the output string, this also provides a consistent output
in table, chain, rule and set.

As Stephen Hemminger suggested, better to squash the output to
consume as less bytes as possible.

Signed-off-by: Alvaro Neira Ayuso <alvaroneay@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
73 files changed:
src/chain.c
src/expr/bitwise.c
src/expr/byteorder.c
src/expr/cmp.c
src/expr/counter.c
src/expr/ct.c
src/expr/data_reg.c
src/expr/exthdr.c
src/expr/immediate.c
src/expr/limit.c
src/expr/log.c
src/expr/lookup.c
src/expr/match.c
src/expr/meta.c
src/expr/nat.c
src/expr/payload.c
src/expr/target.c
src/rule.c
src/ruleset.c
src/set.c
src/set_elem.c
src/table.c
tests/jsonfiles/01-table.json
tests/jsonfiles/02-table.json
tests/jsonfiles/11-chain.json
tests/jsonfiles/12-chain.json
tests/jsonfiles/13-chain.json
tests/jsonfiles/14-chain.json
tests/jsonfiles/20-rule-bitwise.json
tests/jsonfiles/21-rule-byteorder.json
tests/jsonfiles/22-rule-cmp.json
tests/jsonfiles/23-rule-counter.json
tests/jsonfiles/24-rule-ct.json
tests/jsonfiles/25-rule-exthdr.json
tests/jsonfiles/26-rule-immediate.json
tests/jsonfiles/27-rule-limit.json
tests/jsonfiles/28-rule-log.json
tests/jsonfiles/29-rule-match.json
tests/jsonfiles/30-rule-lookup.json
tests/jsonfiles/31-rule-meta.json
tests/jsonfiles/32-rule-nat4.json
tests/jsonfiles/33-rule-nat6.json
tests/jsonfiles/34-rule-payload.json
tests/jsonfiles/35-rule-target.json
tests/jsonfiles/36-rule-real.json
tests/jsonfiles/37-rule-real.json
tests/jsonfiles/38-rule-real.json
tests/jsonfiles/39-rule-real.json
tests/jsonfiles/40-rule-real.json
tests/jsonfiles/41-rule-real.json
tests/jsonfiles/42-rule-real.json
tests/jsonfiles/43-rule-real.json
tests/jsonfiles/44-rule-real.json
tests/jsonfiles/45-rule-real.json
tests/jsonfiles/46-rule-real.json
tests/jsonfiles/47-rule-real.json
tests/jsonfiles/48-rule-real.json
tests/jsonfiles/49-rule-real.json
tests/jsonfiles/50-rule-real.json
tests/jsonfiles/51-rule-real.json
tests/jsonfiles/52-rule-real.json
tests/jsonfiles/53-rule-real.json
tests/jsonfiles/54-rule-real.json
tests/jsonfiles/55-rule-real.json
tests/jsonfiles/56-rule-real.json
tests/jsonfiles/57-rule-real.json
tests/jsonfiles/58-rule-real.json
tests/jsonfiles/59-rule-real.json
tests/jsonfiles/60-rule-real.json
tests/jsonfiles/61-rule-real.json
tests/jsonfiles/62-set.json
tests/jsonfiles/63-set.json
tests/jsonfiles/64-ruleset.json

index f83147924beb0de13869421d447a84e0e8902370..6179f683b3a4085d37cb09da96c8ecd1dcacb4a7 100644 (file)
@@ -754,14 +754,14 @@ static int nft_chain_snprintf_json(char *buf, size_t size, struct nft_chain *c)
        int ret, len = size, offset = 0;
 
        ret = snprintf(buf, len,
-               "{ \"chain\": {"
-                       "\"name\": \"%s\","
-                       "\"handle\": %"PRIu64","
-                       "\"bytes\": %"PRIu64","
-                       "\"packets\": %"PRIu64","
-                       "\"family\": \"%s\","
-                       "\"table\": \"%s\","
-                       "\"use\": %d",
+                       "{\"chain\":{"
+                       "\"name\":\"%s\","
+                       "\"handle\":%"PRIu64","
+                       "\"bytes\":%"PRIu64","
+                       "\"packets\":%"PRIu64","
+                       "\"family\":\"%s\","
+                       "\"table\":\"%s\","
+                       "\"use\":%d",
                        c->name, c->handle, c->bytes, c->packets,
                        nft_family2str(c->family),
                        c->table, c->use);
@@ -769,10 +769,10 @@ static int nft_chain_snprintf_json(char *buf, size_t size, struct nft_chain *c)
 
        if (c->flags & (1 << NFT_CHAIN_ATTR_HOOKNUM)) {
                ret =  snprintf(buf+offset, len,
-                               ",\"type\": \"%s\","
-                               "\"hooknum\": \"%s\","
-                               "\"prio\": %d,"
-                               "\"policy\": \"%s\"",
+                               ",\"type\":\"%s\","
+                               "\"hooknum\":\"%s\","
+                               "\"prio\":%d,"
+                               "\"policy\":\"%s\"",
                        c->type, nft_hooknum2str(c->family, c->hooknum),
                        c->prio, nft_verdict2str(c->policy));
                SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
index f293069101a6794828fb222831aee05b545bba62..0be15934d2ca5b93e4200fc957a3ee2c892f2e3d 100644 (file)
@@ -283,20 +283,20 @@ nft_rule_expr_bitwise_snprintf_json(char *buf, size_t size,
 {
        int len = size, offset = 0, ret;
 
-       ret = snprintf(buf, len, "\"sreg\" : %u, "
-                               "\"dreg\" : %u, "
-                               "\"len\" : %u, ",
+       ret = snprintf(buf, len, "\"sreg\":%u,"
+                                "\"dreg\":%u,"
+                                "\"len\":%u,",
                       bitwise->sreg, bitwise->dreg, bitwise->len);
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
-       ret = snprintf(buf+offset, len, "\"mask\" : {");
+       ret = snprintf(buf+offset, len, "\"mask\":{");
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
        ret = nft_data_reg_snprintf(buf+offset, len, &bitwise->mask,
                                    NFT_RULE_O_JSON, 0, DATA_VALUE);
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
-       ret = snprintf(buf+offset, len, "}, \"xor\" : {");
+       ret = snprintf(buf+offset, len, "},\"xor\":{");
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
        ret = nft_data_reg_snprintf(buf+offset, len, &bitwise->xor,
index f05ddb5a3266e0db517fb5fc844d8dcb332a817c..7012452aa456cf20725b1c581d7f51d8ac4cb573 100644 (file)
@@ -298,11 +298,11 @@ nft_rule_expr_byteorder_snprintf_json(char *buf, size_t size,
 {
        int len = size, offset = 0, ret;
 
-       ret = snprintf(buf, len, "\"sreg\" : %u, "
-                                "\"dreg\" : %u, "
-                                "\"op\" : \"%s\", "
-                                "\"len\" : %u, "
-                                "\"size\" : %u",
+       ret = snprintf(buf, len, "\"sreg\":%u,"
+                                "\"dreg\":%u,"
+                                "\"op\":\"%s\","
+                                "\"len\":%u,"
+                                "\"size\":%u",
                       byteorder->sreg, byteorder->dreg,
                       expr_byteorder_str[byteorder->op],
                       byteorder->len, byteorder->size);
index c6789b6e89276b8833905eea588f7e18373a3fb6..7de72267559c3e6edc9867bf8d3547f3177c3858 100644 (file)
@@ -253,7 +253,7 @@ nft_rule_expr_cmp_snprintf_json(char *buf, size_t size, struct nft_expr_cmp *cmp
 {
        int len = size, offset = 0, ret;
 
-       ret = snprintf(buf, len, "\"sreg\" : %u, \"op\" : \"%s\", \"cmpdata\" : {",
+       ret = snprintf(buf, len, "\"sreg\":%u,\"op\":\"%s\",\"cmpdata\":{",
                       cmp->sreg, expr_cmp_str[cmp->op]);
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
index bba926187c575f51b2c94d0d710d8a99ccb9d24a..561f26c9dcf62008bc4aaaae9a7964173c3a962b 100644 (file)
@@ -180,7 +180,7 @@ nft_rule_expr_counter_snprintf(char *buf, size_t len, uint32_t type,
                return snprintf(buf, len, "<pkts>%"PRIu64"</pkts><bytes>%"PRIu64"</bytes>",
                                ctr->pkts, ctr->bytes);
        case NFT_RULE_O_JSON:
-               return snprintf(buf, len, "\"pkts\" : %"PRIu64", \"bytes\" : %"PRIu64"",
+               return snprintf(buf, len, "\"pkts\":%"PRIu64",\"bytes\":%"PRIu64"",
                                ctr->pkts, ctr->bytes);
        default:
                break;
index bf18c7ea50e190d4e6c65c23486858a5ea611385..e84d996f40c90b786b1be093a428117226b2027b 100644 (file)
@@ -279,17 +279,17 @@ nft_expr_ct_snprintf_json(char *buf, size_t size, struct nft_rule_expr *e)
        int ret, len = size, offset = 0;
        struct nft_expr_ct *ct = nft_expr_data(e);
 
-       ret = snprintf(buf, len, "\"dreg\" : %u", ct->dreg);
+       ret = snprintf(buf, len, "\"dreg\":%u", ct->dreg);
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
        if (e->flags & (1 << NFT_EXPR_CT_KEY)) {
-               ret = snprintf(buf+offset, len, ", \"key\" : \"%s\"",
+               ret = snprintf(buf+offset, len, ",\"key\":\"%s\"",
                                                ctkey2str(ct->key));
                SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
        }
 
        if (e->flags & (1 << NFT_EXPR_CT_DIR)) {
-               ret = snprintf(buf+offset, len, ", \"dir\" : %u", ct->dir);
+               ret = snprintf(buf+offset, len, ",\"dir\":%u", ct->dir);
                SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
        }
 
index 2b9ecee7c35fc13e441776d05bd649601d2940de..193f3ab60ef6d9cacbd42a5270e4c3e4a081a40a 100644 (file)
@@ -216,14 +216,14 @@ nft_data_reg_value_snprintf_json(char *buf, size_t size,
        uint32_t utemp;
        uint8_t *tmp;
 
-       ret = snprintf(buf, len, "\"data_reg\": { \"type\" : \"value\", ");
+       ret = snprintf(buf, len, "\"data_reg\":{\"type\":\"value\",");
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
-       ret = snprintf(buf+offset, len, "\"len\" : %u, ", reg->len);
+       ret = snprintf(buf+offset, len, "\"len\":%u,", reg->len);
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
        for (i = 0; i < div_round_up(reg->len, sizeof(uint32_t)); i++) {
-               ret = snprintf(buf+offset, len, "\"data%d\" : \"0x", i);
+               ret = snprintf(buf+offset, len, "\"data%d\":\"0x", i);
                SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
                utemp = htonl(reg->val[i]);
@@ -234,10 +234,10 @@ nft_data_reg_value_snprintf_json(char *buf, size_t size,
                        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
                }
 
-               ret = snprintf(buf+offset, len, "\", ");
+               ret = snprintf(buf+offset, len, "\",");
                SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
        }
-       offset -= 2;
+       offset--;
        ret = snprintf(buf+offset, len, "}");
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
@@ -324,9 +324,9 @@ int nft_data_reg_snprintf(char *buf, size_t size, union nft_data_reg *reg,
                                        nft_verdict2str(reg->verdict));
                case NFT_RULE_O_JSON:
                        return snprintf(buf, size,
-                                       "\"data_reg\": {"
-                                               "\"type\" : \"verdict\", "
-                                               "\"verdict\" : \"%s\""
+                                       "\"data_reg\":{"
+                                       "\"type\":\"verdict\","
+                                       "\"verdict\":\"%s\""
                                        "}", nft_verdict2str(reg->verdict));
                default:
                        break;
@@ -342,8 +342,8 @@ int nft_data_reg_snprintf(char *buf, size_t size, union nft_data_reg *reg,
                                        "</data_reg>", reg->chain);
                case NFT_RULE_O_JSON:
                        return snprintf(buf, size,
-                                       "\"data_reg\": { \"type\" : \"chain\", "
-                                               "\"chain\" : \"%s\""
+                                       "\"data_reg\":{\"type\":\"chain\","
+                                       "\"chain\":\"%s\""
                                        "}", reg->chain);
                default:
                        break;
index 1290f3f8e047f2a0b82ca73bab9ac1102cebbcba..32791d00723c645df1772e83052c62910d05eb9c 100644 (file)
@@ -302,9 +302,9 @@ nft_rule_expr_exthdr_snprintf(char *buf, size_t len, uint32_t type,
                                        exthdr_type2str(exthdr->type),
                                        exthdr->offset, exthdr->len);
        case NFT_RULE_O_JSON:
-               return snprintf(buf, len, "\"dreg\" : %u, "
-                                         "\"exthdr_type\" : \"%s\", \"offset\" : %u, "
-                                         "\"len\" : %u",
+               return snprintf(buf, len, "\"dreg\":%u,"
+                                         "\"exthdr_type\":\"%s\",\"offset\":%u,"
+                                         "\"len\":%u",
                                        exthdr->dreg,
                                        exthdr_type2str(exthdr->type),
                                        exthdr->offset, exthdr->len);
index e82480189359dcb56200f78d387b63672c44fc7a..cb3b209f79ad64a604003703572ab3d7a86b5872 100644 (file)
@@ -261,8 +261,8 @@ nft_rule_expr_immediate_snprintf_json(char *buf, size_t len,
        int size = len, offset = 0, ret;
        struct nft_expr_immediate *imm = nft_expr_data(e);
 
-       ret = snprintf(buf, len, "\"dreg\" : %u, "
-                               "\"immediatedata\" : {", imm->dreg);
+       ret = snprintf(buf, len, "\"dreg\":%u,"
+                                "\"immediatedata\":{", imm->dreg);
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
 
index 6954014b826f6ea6fe62cd67adf45e3a7cffbb0f..bdb041448339a1077dd9f27e9951522b6093bf3a 100644 (file)
@@ -179,8 +179,8 @@ nft_rule_expr_limit_snprintf(char *buf, size_t len, uint32_t type,
                                          "<depth>%"PRIu64"</depth>",
                                limit->rate, limit->depth);
        case NFT_RULE_O_JSON:
-               return snprintf(buf, len, "\"rate\" : %"PRIu64", "
-                                         "\"depth\" : %"PRIu64" ",
+               return snprintf(buf, len, "\"rate\":%"PRIu64","
+                                         "\"depth\":%"PRIu64"",
                                limit->rate, limit->depth);
        default:
                break;
index 0a8e86c306461712bb7842e15c231d9c6dd00d27..7722d62e2426478da80fee3e041efcd056171afb 100644 (file)
@@ -256,10 +256,10 @@ nft_rule_expr_log_snprintf(char *buf, size_t len, uint32_t type,
                                log->prefix, log->group,
                                log->snaplen, log->qthreshold);
        case NFT_RULE_O_JSON:
-               return snprintf(buf, len, "\"prefix\" : \"%s\", "
-                                         "\"group\" : %u, "
-                                         "\"snaplen\" : %u, "
-                                         "\"qthreshold\" : %u ",
+               return snprintf(buf, len, "\"prefix\":\"%s\","
+                                         "\"group\":%u,"
+                                         "\"snaplen\":%u,"
+                                         "\"qthreshold\":%u",
                                log->prefix, log->group,
                                log->snaplen, log->qthreshold);
        default:
index 1f10e1533d95c1c0ca544ee32739d0ecf8b69bcb..e37e295629a812f23e4522d7628e896eaa85d5b6 100644 (file)
@@ -216,7 +216,7 @@ nft_rule_expr_lookup_snprintf_json(char *buf, size_t size,
 {
        int len = size, offset = 0, ret;
 
-       ret = snprintf(buf, len, "\"set\" : \"%s\", \"sreg\" : %u, \"dreg\" : %u",
+       ret = snprintf(buf, len, "\"set\":\"%s\",\"sreg\":%u,\"dreg\":%u",
                        l->set_name, l->sreg, l->dreg);
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
index 91e59ffd15b87b20749f84c8e095b8a198c247f5..c03ab124d1249fc51b18acb1436ef48dca8f3963 100644 (file)
@@ -218,7 +218,7 @@ static int nft_rule_expr_match_snprintf_json(char *buf, size_t len,
 {
        int ret, size = len, offset = 0;
 
-       ret = snprintf(buf, len, "\"name\" : \"%s\"",
+       ret = snprintf(buf, len, "\"name\":\"%s\"",
                                mt->name);
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
index 98d83b07a09303ee0e1187884dc18cb9864b6c08..beeb8caf693d473ec544ba366b8abc0c2ca44a41 100644 (file)
@@ -239,8 +239,8 @@ nft_rule_expr_meta_snprintf(char *buf, size_t len, uint32_t type,
                                          "<key>%s</key>",
                                meta->dreg, meta_key2str(meta->key));
        case NFT_RULE_O_JSON:
-               return snprintf(buf, len, "\"dreg\" : %u, "
-                                         "\"key\" : \"%s\"",
+               return snprintf(buf, len, "\"dreg\":%u,"
+                                         "\"key\":\"%s\"",
                                meta->dreg, meta_key2str(meta->key));
        default:
                break;
index 3c40b9365fc0d13b67fef90de39398d549bce3b6..7150eec775aec45f8c65c06b6f44d05a74518e35 100644 (file)
@@ -327,28 +327,26 @@ nft_rule_expr_nat_snprintf_json(char *buf, size_t size,
        int len = size, offset = 0, ret = 0;
 
        if (nat->type == NFT_NAT_SNAT)
-               ret = snprintf(buf, len, "\"nat_type\" : \"snat\", ");
+               ret = snprintf(buf, len, "\"nat_type\":\"snat\",");
        else if (nat->type == NFT_NAT_DNAT)
-               ret = snprintf(buf, len, "\"nat_type\" : \"dnat\", ");
+               ret = snprintf(buf, len, "\"nat_type\":\"dnat\",");
 
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
-       ret = snprintf(buf+offset, len, "\"family\" : \"%s\", ",
+       ret = snprintf(buf+offset, len, "\"family\":\"%s\",",
                       nft_family2str(nat->family));
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
        if (e->flags & (1 << NFT_EXPR_NAT_REG_ADDR_MIN)) {
-               ret = snprintf(buf+offset, len,
-                               "\"sreg_addr_min\" : %u, "
-                               "\"sreg_addr_max\" : %u, ",
+               ret = snprintf(buf+offset, len, "\"sreg_addr_min\":%u,"
+                                               "\"sreg_addr_max\":%u,",
                               nat->sreg_addr_min, nat->sreg_addr_max);
                SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
        }
 
        if (e->flags & (1 << NFT_EXPR_NAT_REG_PROTO_MIN)) {
-               ret = snprintf(buf+offset, len,
-                               "\"sreg_proto_min\" : %u, "
-                               "\"sreg_proto_max\" : %u",
+               ret = snprintf(buf+offset, len, "\"sreg_proto_min\":%u,"
+                                               "\"sreg_proto_max\":%u",
                       nat->sreg_proto_min, nat->sreg_proto_max);
                SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
        }
index d76e2c46ca3c615cf1f7c6e7b3a9ed571e14a0ba..390b8efd3d7b8dfc350aaef83b0b5efd6577d1d3 100644 (file)
@@ -169,10 +169,10 @@ nft_rule_expr_payload_snprintf_json(char *buf, size_t len, uint32_t flags,
 {
        int size = len, offset = 0, ret;
 
-       ret = snprintf(buf, len, "\"dreg\" : %u, "
-                                "\"offset\" : %u, "
-                                "\"len\" : %u, "
-                                "\"base\" : \"%s\"",
+       ret = snprintf(buf, len, "\"dreg\":%u,"
+                                "\"offset\":%u,"
+                                "\"len\":%u,"
+                                "\"base\":\"%s\"",
                       p->dreg, p->offset, p->len, base2str(p->base));
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
index 19eeddefa27aa9cc0e8c3420690b66e03da96ac2..43fb666715e33296a5a408223534f0a011b950d1 100644 (file)
@@ -220,7 +220,7 @@ int nft_rule_exp_target_snprintf_json(char *buf, size_t len,
 {
        int ret, size = len, offset = 0;
 
-       ret = snprintf(buf, len, "\"name\" : \"%s\"",
+       ret = snprintf(buf, len, "\"name\":\"%s\"",
                        tg->name);
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
index 7f2bce630a0f272e108a5b88c15b4114057e8f7d..50f4486cad1ebc8779706e46f099f4fa17d4c660 100644 (file)
@@ -705,37 +705,35 @@ static int nft_rule_snprintf_json(char *buf, size_t size, struct nft_rule *r,
        int ret, len = size, offset = 0;
        struct nft_rule_expr *expr;
 
-       ret = snprintf(buf, len,
-                      "{ \"rule\": { \"family\" : \"%s\", \"table\" : \"%s\", "
-                      "\"chain\"  : \"%s\", \"handle\" : %llu,",
+       ret = snprintf(buf, len, "{\"rule\":{\"family\":\"%s\",\"table\":\"%s\","
+                                "\"chain\":\"%s\",\"handle\":%llu,",
                       nft_family2str(r->family), r->table, r->chain,
                       (unsigned long long)r->handle);
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
-       ret = snprintf(buf+offset, len, "\"flags\" : %u, ", r->rule_flags);
+       ret = snprintf(buf+offset, len, "\"flags\":%u,", r->rule_flags);
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
        if (r->flags & (1 << NFT_RULE_ATTR_COMPAT_PROTO) ||
            r->flags & (1 << NFT_RULE_ATTR_COMPAT_FLAGS)) {
-               ret = snprintf(buf+offset, len, "\"compat_flags\" : %u, "
-                                               "\"compat_proto\" : %u, ",
+               ret = snprintf(buf+offset, len, "\"compat_flags\":%u,"
+                                               "\"compat_proto\":%u,",
                               r->compat.flags, r->compat.proto);
                SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
        }
 
        if (r->flags & (1 << NFT_RULE_ATTR_POSITION)) {
-               ret = snprintf(buf+offset, len,
-                              "\"position\" : %"PRIu64", ",
+               ret = snprintf(buf+offset, len, "\"position\":%"PRIu64",",
                               r->position);
                SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
        }
 
-       ret = snprintf(buf+offset, len, "\"expr\" : [");
+       ret = snprintf(buf+offset, len, "\"expr\":[");
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
        list_for_each_entry(expr, &r->expr_list, head) {
                ret = snprintf(buf+offset, len,
-                              " { \"type\" : \"%s\", ", expr->ops->name);
+                              "{\"type\":\"%s\",", expr->ops->name);
                SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
                ret = expr->ops->snprintf(buf+offset, len, type, flags, expr);
index 7fdfa4d60487f825f76dc4aff4d416e93c10cfd8..8944da6c53085f311ed718cc19866be390f9779a 100644 (file)
@@ -783,7 +783,7 @@ nft_ruleset_snprintf_json(char *buf, size_t size, const struct nft_ruleset *rs,
 {
        int ret, len = size, offset = 0;
 
-       ret = snprintf(buf, size, "{ \"nftables\": [");
+       ret = snprintf(buf, size, "{\"nftables\":[");
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
        ret = nft_ruleset_do_snprintf(buf+offset, len, rs, NFT_RULESET_O_JSON,
index 31185a0bb926c7297521dd78348210c3e623c22e..74ec1e3d2b28e5cba4a7ceb34e5db8e63cda68c2 100644 (file)
--- a/src/set.c
+++ b/src/set.c
@@ -543,10 +543,10 @@ static int nft_set_snprintf_json(char *buf, size_t size, struct nft_set *s,
        int len = size, offset = 0, ret;
        struct nft_set_elem *elem;
 
-       ret = snprintf(buf, len, "{ \"set\": { \"name\": \"%s\","
-                                 "\"table\": \"%s\","
-                                 "\"flags\": %u,\"family\": \"%s\","
-                                 "\"key_type\": %u,\"key_len\": %u",
+       ret = snprintf(buf, len, "{\"set\":{\"name\":\"%s\","
+                                 "\"table\":\"%s\","
+                                 "\"flags\":%u,\"family\":\"%s\","
+                                 "\"key_type\":%u,\"key_len\":%u",
                        s->name, s->table, s->set_flags,
                        nft_family2str(s->family), s->key_type, s->key_len);
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
@@ -554,7 +554,7 @@ static int nft_set_snprintf_json(char *buf, size_t size, struct nft_set *s,
        if(s->flags & (1 << NFT_SET_ATTR_DATA_TYPE) &&
           s->flags & (1 << NFT_SET_ATTR_DATA_LEN)){
                ret = snprintf(buf+offset, len,
-                                 ",\"data_type\": %u,\"data_len\": %u",
+                                 ",\"data_type\":%u,\"data_len\":%u",
                        s->data_type, s->data_len);
                SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
        }
@@ -566,7 +566,7 @@ static int nft_set_snprintf_json(char *buf, size_t size, struct nft_set *s,
                return offset;
        }
 
-       ret = snprintf(buf+offset, len, ",\"set_elem\": [");
+       ret = snprintf(buf+offset, len, ",\"set_elem\":[");
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
        list_for_each_entry(elem, &s->element_list, head) {
@@ -576,11 +576,11 @@ static int nft_set_snprintf_json(char *buf, size_t size, struct nft_set *s,
                ret = nft_set_elem_snprintf(buf+offset, len, elem, type, flags);
                SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
-               ret = snprintf(buf+offset, len, "}, ");
+               ret = snprintf(buf+offset, len, "},");
                SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
        }
        /* Overwrite trailing ", " from last set element */
-       offset -= 2;
+       offset --;
 
        ret = snprintf(buf+offset, len, "]}}");
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
index ba24c9669cde0249a2401f8b476c89baded54206..5bb82f69fff292000b97984fca4614dca0ca8268 100644 (file)
@@ -454,10 +454,10 @@ static int nft_set_elem_snprintf_json(char *buf, size_t size,
 {
        int ret, len = size, offset = 0, type = -1;
 
-       ret = snprintf(buf, len, "\"flags\": %u", e->set_elem_flags);
+       ret = snprintf(buf, len, "\"flags\":%u", e->set_elem_flags);
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
-       ret = snprintf(buf+offset, len, ",\"key\": {");
+       ret = snprintf(buf+offset, len, ",\"key\":{");
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
        ret = nft_data_reg_snprintf(buf+offset, len, &e->key,
@@ -475,7 +475,7 @@ static int nft_set_elem_snprintf_json(char *buf, size_t size,
                type = DATA_VERDICT;
 
        if (type != -1) {
-               ret = snprintf(buf+offset, len, ",\"data\": {");
+               ret = snprintf(buf+offset, len, ",\"data\":{");
                SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
                ret = nft_data_reg_snprintf(buf+offset, len, &e->data,
index 7f14b322f2f80e9bba8160c1053423a793feb7d6..d3ff188727a6e8ae5698e725accad93f5d93c350 100644 (file)
@@ -349,10 +349,10 @@ EXPORT_SYMBOL(nft_table_parse);
 static int nft_table_snprintf_json(char *buf, size_t size, struct nft_table *t)
 {
        return snprintf(buf, size,
-                       "{\"table\" : {"
-                       "\"name\" : \"%s\","
-                       "\"family\" : \"%s\","
-                       "\"flags\" : %d"
+                       "{\"table\":{"
+                       "\"name\":\"%s\","
+                       "\"family\":\"%s\","
+                       "\"flags\":%d"
                        "}"
                        "}" ,
                        t->name, nft_family2str(t->family), t->table_flags);
index b4fc91b52eeeb387e5078f62dff656ff39d893bd..cfe7e9d6442d9ae58bacaa38addf2dd0cac9c860 100644 (file)
@@ -1 +1 @@
-{"table" : {"name" : "filter","family" : "ip","flags" : 0}}
+{"table":{"name":"filter","family":"ip","flags":0}}
index 01eff74cc587d54715d9b31bad43f06e02c84081..ddd119ca55d1d323be2d9fad0824a2d809141f8e 100644 (file)
@@ -1 +1 @@
-{"table" : {"name" : "filter2","family" : "ip6","flags" : 0}}
+{"table":{"name":"filter2","family":"ip6","flags":0}}
index 2381eb698d8202920c91ee81774c3c012f541039..e1ed07f82db518541bbb37e756e51821e082ca52 100644 (file)
@@ -1 +1 @@
-{ "chain": {"name": "input","handle": 1,"bytes": 1375696,"packets": 4136,"family": "ip","table": "filter","use": 0,"type": "filter","hooknum": "input","prio": 0,"policy": "accept"}}
+{"chain":{"name":"input","handle":1,"bytes":1375696,"packets":4136,"family":"ip","table":"filter","use":0,"type":"filter","hooknum":"input","prio":0,"policy":"accept"}}
index d20cb1d095c9370ef0b8aadde420a22c693fa5b0..b3fa5414681ada79a368965aa81b28b458b593d5 100644 (file)
@@ -1 +1 @@
-{ "chain": {"name": "forward","handle": 2,"bytes": 0,"packets": 0,"family": "ip","table": "filter","use": 0,"type": "filter","hooknum": "forward","prio": 0,"policy": "accept"}}
+{"chain":{"name":"forward","handle":2,"bytes":0,"packets":0,"family":"ip","table":"filter","use":0,"type":"filter","hooknum":"forward","prio":0,"policy":"accept"}}
index 69f8750a11064acb83639584107295caa22b4f1b..6d8230dc8cf570c207c6c6564479138f87d37c9e 100644 (file)
@@ -1 +1 @@
-{ "chain": {"name": "output","handle": 3,"bytes": 454786,"packets": 2681,"family": "ip","table": "filter","use": 0,"type": "filter","hooknum": "output","prio": 0,"policy": "accept"}}
+{"chain":{"name":"output","handle":3,"bytes":454786,"packets":2681,"family":"ip","table":"filter","use":0,"type":"filter","hooknum":"output","prio":0,"policy":"accept"}}
index 716d02213ab0d7bece7e68acdcb4f9d1c7baf03a..44bc106154c580ba62154b35940c93ed9fab3036 100644 (file)
@@ -1 +1 @@
-{ "chain": {"name": "chain1","handle": 4,"bytes": 0,"packets": 0,"family": "ip","table": "filter","use": 0}}
+{"chain":{"name":"chain1","handle":4,"bytes":0,"packets":0,"family":"ip","table":"filter","use":0}}
index d39d0f941da2a057022c0873219f661ff5efd861..e1bf9a627172a2f55dc28ee6992e551605bb3d1e 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "input", "handle" : 20,"flags" : 0, "expr" : [ { "type" : "bitwise", "sreg" : 1, "dreg" : 1, "len" : 4, "mask" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x0000000a"}}, "xor" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x00000000"}}}]}}
+{"rule":{"family":"ip","table":"filter","chain":"input","handle":20,"flags":0,"expr":[{"type":"bitwise","sreg":1,"dreg":1,"len":4,"mask":{"data_reg":{"type":"value","len":4,"data0":"0x0000000a"}},"xor":{"data_reg":{"type":"value","len":4,"data0":"0x00000000"}}}]}}
index 631ee5132fcd02c0023e5da3e3deff51a387732b..3ad991d608422a2e93ee9a52f190ac63c872bd89 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "input", "handle" : 21,"flags" : 0, "expr" : [ { "type" : "byteorder", "sreg" : 3, "dreg" : 4, "op" : "hton", "len" : 4, "size" : 4}]}}
+{"rule":{"family":"ip","table":"filter","chain":"input","handle":21,"flags":0,"expr":[{"type":"byteorder","sreg":3,"dreg":4,"op":"hton","len":4,"size":4}]}}
index ae36cbc6031066275bbeff7b1ff2f7677e69abf9..e0a6fb66990e62c610a1404418fbbaeb9882e56f 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "forward", "handle" : 22,"flags" : 0, "expr" : [ { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 16, "data0" : "0x00000000", "data1" : "0x6e6f6200", "data2" : "0x2e303164", "data3" : "0x00393331"}}}]}}
+{"rule":{"family":"ip","table":"filter","chain":"forward","handle":22,"flags":0,"expr":[{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":16,"data0":"0x00000000","data1":"0x6e6f6200","data2":"0x2e303164","data3":"0x00393331"}}}]}}
index 6c0a74528f123118f87767d82c78f03485b5d354..ec95c0fb5ebd467f6c0a6cf17d34625b816d3d72 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 23,"flags" : 0, "expr" : [ { "type" : "counter", "pkts" : 135, "bytes" : 21655}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":23,"flags":0,"expr":[{"type":"counter","pkts":135,"bytes":21655}]}}
index 2c640c584bbc55fb9724ae99da8e488f20eb015a..9e73ff9f686c06dce1c589e58428713d9f83596d 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "input", "handle" : 24,"flags" : 0, "expr" : [ { "type" : "ct", "dreg" : 1, "key" : "state"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x00000008"}}}]}}
+{"rule":{"family":"ip","table":"filter","chain":"input","handle":24,"flags":0,"expr":[{"type":"ct","dreg":1,"key":"state"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x00000008"}}}]}}
index 8234a8bf08936ebbd6c3a33d051f61d126b6dc9d..b229b418eb6e660c2c48fb0c27bf029d558c67ee 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "input", "handle" : 25,"flags" : 0, "expr" : [ { "type" : "exthdr", "dreg" : 1, "exthdr_type" : "mh", "offset" : 2, "len" : 16}]}}
+{"rule":{"family":"ip","table":"filter","chain":"input","handle":25,"flags":0,"expr":[{"type":"exthdr","dreg":1,"exthdr_type":"mh","offset":2,"len":16}]}}
index 1751c17ebd55d7f6d75c81c9726c23013ae5d253..078ee2755dde8053e2615d7a5b92c760072bf057 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "input", "handle" : 26,"flags" : 0, "expr" : [ { "type" : "immediate", "dreg" : 0, "immediatedata" : {"data_reg": {"type" : "verdict", "verdict" : "accept"}}}]}}
+{"rule":{"family":"ip","table":"filter","chain":"input","handle":26,"flags":0,"expr":[{"type":"immediate","dreg":0,"immediatedata":{"data_reg":{"type":"verdict","verdict":"accept"}}}]}}
index 4ae3b7069e8907adcadaea750f1b70537af9756f..1f066b45b5e972f08e45e90be30d9089f845f470 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "input", "handle" : 27,"flags" : 0, "expr" : [ { "type" : "limit", "rate" : 321321, "depth" : 0 }]}}
+{"rule":{"family":"ip","table":"filter","chain":"input","handle":27,"flags":0,"expr":[{"type":"limit","rate":321321,"depth":0}]}}
index 50e50888bc1062cc729d924d90f6020b8369e296..26b4f7759922475acd9e7ae68e16a077813f2cf0 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "input", "handle" : 28,"flags" : 0, "expr" : [ { "type" : "log", "prefix" : "test_chain", "group" : 1, "snaplen" : 0, "qthreshold" : 0 }]}}
+{"rule":{"family":"ip","table":"filter","chain":"input","handle":28,"flags":0,"expr":[{"type":"log","prefix":"test_chain","group":1,"snaplen":0,"qthreshold":0}]}}
index 8270764e5734f94af8b8198caf9aaa6d6f0e54f2..49f30d2ad496ec4463f6941bc6ab1e26f19ee5aa 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "input", "handle" : 9,"flags" : 0, "expr" : [ { "type" : "match", "name" : "state"}, { "type" : "counter", "pkts" : 0, "bytes" : 0}]}}
+{"rule":{"family":"ip","table":"filter","chain":"input","handle":9,"flags":0,"expr":[{"type":"match","name":"state"},{"type":"counter","pkts":0,"bytes":0}]}}
index e98b86533a9b6dcc50cb3f3a7b9ac9f616dcac28..e2900c245dae946429b1c43e499ee170be10f563 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "input", "handle" : 8,"flags" : 0, "expr" : [ { "type" : "payload", "dreg" : 1, "offset" : 12, "len" : 4, "base" : "network"}, { "type" : "lookup", "set" : "set0", "sreg" : 1, "dreg" : 0}]}}
+{"rule":{"family":"ip","table":"filter","chain":"input","handle":8,"flags":0,"expr":[{"type":"payload","dreg":1,"offset":12,"len":4,"base":"network"},{"type":"lookup","set":"set0","sreg":1,"dreg":0}]}}
index b67a719da8912d61001f8ae9d70b4aaf94e63667..867b2d49d26dbcf81860fbdadae96e7add0aa725 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 8,"flags" : 0, "expr" : [ { "type" : "meta", "dreg" : 1, "key" : "protocol"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x000003e8"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":8,"flags":0,"expr":[{"type":"meta","dreg":1,"key":"protocol"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x000003e8"}}},{"type":"counter","pkts":0,"bytes":0}]}}
index fb311d27439b8f8c5448ab85e6e9c62d9f21f2fe..fa93d35884459dc9277b89c7db58b21303161eb4 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "input", "handle" : 10,"flags" : 0, "expr" : [ { "type" : "nat", "nat_type" : "dnat", "family" : "ip", "sreg_addr_min" : 1, "sreg_addr_max" : 2, "sreg_proto_min" : 3, "sreg_proto_max" : 4}]}}
+{"rule":{"family":"ip","table":"filter","chain":"input","handle":10,"flags":0,"expr":[{"type":"nat","nat_type":"dnat","family":"ip","sreg_addr_min":1,"sreg_addr_max":2,"sreg_proto_min":3,"sreg_proto_max":4}]}}
index cd11c0422705a6599651b96ac15c2bfee6129f35..b9df9983a507d328942d5061e7ec0f6fff1c53ff 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip6", "table" : "nat", "chain"  : "output", "handle" : 33,"flags" : 0, "expr" : [ { "type" : "nat", "nat_type" : "snat", "family" : "ip6", "sreg_addr_min" : 1, "sreg_addr_max" : 2, "sreg_proto_min" : 3, "sreg_proto_max" : 4}]}}
+{"rule":{"family":"ip6","table":"nat","chain":"output","handle":33,"flags":0,"expr":[{"type":"nat","nat_type":"snat","family":"ip6","sreg_addr_min":1,"sreg_addr_max":2,"sreg_proto_min":3,"sreg_proto_max":4}]}}
index 6015dc4ee30e3244e2dc3a7ef3f8bf83dae57dc5..1d0f2cd73f5e1c11346b2695baca68734461ba87 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "input", "handle" : 26,"flags" : 0, "expr" : [ { "type" : "payload", "dreg" : 1, "offset" : 9, "len" : 1, "base" : "network"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 1, "data0" : "0x00000006"}}}, { "type" : "payload", "dreg" : 1, "offset" : 2, "len" : 2, "base" : "transport"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 2, "data0" : "0x00001600"}}}, { "type" : "immediate", "dreg" : 0, "immediatedata" : {"data_reg": {"type" : "verdict", "verdict" : "accept"}}}]}}
+{"rule":{"family":"ip","table":"filter","chain":"input","handle":26,"flags":0,"expr":[{"type":"payload","dreg":1,"offset":9,"len":1,"base":"network"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":1,"data0":"0x00000006"}}},{"type":"payload","dreg":1,"offset":2,"len":2,"base":"transport"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":2,"data0":"0x00001600"}}},{"type":"immediate","dreg":0,"immediatedata":{"data_reg":{"type":"verdict","verdict":"accept"}}}]}}
index a435264bee25308d2827dbda1621fd439232bcd3..0c93d5ef2f3a425636f476cb4d0b2dbfbe3c83b3 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "INPUT", "handle" : 20,"flags" : 0, "expr" : [ { "type" : "counter", "pkts" : 17, "bytes" : 4436}, { "type" : "target", "name" : "LOG"}]}}
+{"rule":{"family":"ip","table":"filter","chain":"INPUT","handle":20,"flags":0,"expr":[{"type":"counter","pkts":17,"bytes":4436},{"type":"target","name":"LOG"}]}}
index 9ea5e48b46bdc7d9aed14d7bab5bbf4e6dee2c74..6a1d7056d8e9bc9a999dd39c03ec08ac26ce3f99 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 36,"flags" : 0, "expr" : [ { "type" : "payload", "dreg" : 1, "offset" : 12, "len" : 8, "base" : "link"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 8, "data0" : "0x0100a8c0", "data1" : "0x6400a8c0"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":36,"flags":0,"expr":[{"type":"payload","dreg":1,"offset":12,"len":8,"base":"link"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":8,"data0":"0x0100a8c0","data1":"0x6400a8c0"}}},{"type":"counter","pkts":0,"bytes":0}]}}
index 99bd818221b70bc1954f71d46057f3c222a28d0d..4abc7fbeef4f8500a91d47b0856da86d3852ecef 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 37,"flags" : 0, "expr" : [ { "type" : "payload", "dreg" : 1, "offset" : 16, "len" : 4, "base" : "link"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x0100a8c0"}}}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":37,"flags":0,"expr":[{"type":"payload","dreg":1,"offset":16,"len":4,"base":"link"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x0100a8c0"}}}]}}
index 26384a4c5586db73d11d6d941b5941c102213478..5b0e360e4540c9743d18fd02b0a3ae5073a94e40 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 38,"flags" : 0, "expr" : [ { "type" : "payload", "dreg" : 1, "offset" : 16, "len" : 4, "base" : "link"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x0100a8c0"}}}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":38,"flags":0,"expr":[{"type":"payload","dreg":1,"offset":16,"len":4,"base":"link"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x0100a8c0"}}}]}}
index f77c5a50ea30344b3eee4d2316e4aea2c63881f4..92321960dff03c4b8d936e550ef4fd6b3641cf57 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 39,"flags" : 0, "expr" : [ { "type" : "payload", "dreg" : 1, "offset" : 16, "len" : 4, "base" : "link"}, { "type" : "cmp", "sreg" : 1, "op" : "gte", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x0100a8c0"}}}, { "type" : "cmp", "sreg" : 1, "op" : "lte", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0xfa00a8c0"}}}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":39,"flags":0,"expr":[{"type":"payload","dreg":1,"offset":16,"len":4,"base":"link"},{"type":"cmp","sreg":1,"op":"gte","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x0100a8c0"}}},{"type":"cmp","sreg":1,"op":"lte","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0xfa00a8c0"}}}]}}
index fff70dd4427e9aad6d154d0e6a68c80d4f07c2be..5db129e4da14e938dc446bbd36e28f6dccd1b8d6 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 40,"flags" : 0, "expr" : [ { "type" : "payload", "dreg" : 1, "offset" : 16, "len" : 4, "base" : "link"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x0100a8c0"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":40,"flags":0,"expr":[{"type":"payload","dreg":1,"offset":16,"len":4,"base":"link"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x0100a8c0"}}},{"type":"counter","pkts":0,"bytes":0}]}}
index a5c0e497b84384759c1531081d8e01a6610871b1..2381378f3676c980ea038e8b0f049dbff2e74146 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 41,"flags" : 0, "expr" : [ { "type" : "payload", "dreg" : 1, "offset" : 16, "len" : 4, "base" : "link"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x0100a8c0"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}, { "type" : "immediate", "dreg" : 0, "immediatedata" : {"data_reg": {"type" : "verdict", "verdict" : "drop"}}}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":41,"flags":0,"expr":[{"type":"payload","dreg":1,"offset":16,"len":4,"base":"link"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x0100a8c0"}}},{"type":"counter","pkts":0,"bytes":0},{"type":"immediate","dreg":0,"immediatedata":{"data_reg":{"type":"verdict","verdict":"drop"}}}]}}
index ec2b4a952aead3a080fc1aceb4cc0bd0b028a679..b265d69f6388e3f57d9b8d86530ddc0479446535 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 42,"flags" : 0, "expr" : [ { "type" : "payload", "dreg" : 1, "offset" : 16, "len" : 4, "base" : "link"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x0100a8c0"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}, { "type" : "log", "prefix" : "(null)", "group" : 0, "snaplen" : 0, "qthreshold" : 0 }]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":42,"flags":0,"expr":[{"type":"payload","dreg":1,"offset":16,"len":4,"base":"link"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x0100a8c0"}}},{"type":"counter","pkts":0,"bytes":0},{"type":"log","prefix":"(null)","group":0,"snaplen":0,"qthreshold":0}]}}
index 22f7cd1375ebe798359aff7eb9ac2a35290efc09..7b937eeca98c545d254c18b6590992de95c97925 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 43,"flags" : 0, "expr" : [ { "type" : "payload", "dreg" : 1, "offset" : 9, "len" : 1, "base" : "link"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 1, "data0" : "0x00000006"}}}, { "type" : "payload", "dreg" : 1, "offset" : 2, "len" : 2, "base" : "link"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 2, "data0" : "0x00001600"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":43,"flags":0,"expr":[{"type":"payload","dreg":1,"offset":9,"len":1,"base":"link"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":1,"data0":"0x00000006"}}},{"type":"payload","dreg":1,"offset":2,"len":2,"base":"link"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":2,"data0":"0x00001600"}}},{"type":"counter","pkts":0,"bytes":0}]}}
index c7401aee3819d9257e5eda950e48218d4a403efd..dee71d54cd0f81775a70922075ab1c3c1738dc6b 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 44,"flags" : 0, "expr" : [ { "type" : "payload", "dreg" : 1, "offset" : 9, "len" : 1, "base" : "link"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 1, "data0" : "0x00000006"}}}, { "type" : "payload", "dreg" : 1, "offset" : 0, "len" : 4, "base" : "link"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x16000004"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":44,"flags":0,"expr":[{"type":"payload","dreg":1,"offset":9,"len":1,"base":"link"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":1,"data0":"0x00000006"}}},{"type":"payload","dreg":1,"offset":0,"len":4,"base":"link"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x16000004"}}},{"type":"counter","pkts":0,"bytes":0}]}}
index 5f9df879273abe772ce7dc26f50e98f291c146d6..ecce2151676ed1417b6ef0b56f55f553213bd69c 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 45,"flags" : 0, "expr" : [ { "type" : "payload", "dreg" : 1, "offset" : 12, "len" : 8, "base" : "link"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 8, "data0" : "0x0100a8c0", "data1" : "0x6400a8c0"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":45,"flags":0,"expr":[{"type":"payload","dreg":1,"offset":12,"len":8,"base":"link"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":8,"data0":"0x0100a8c0","data1":"0x6400a8c0"}}},{"type":"counter","pkts":0,"bytes":0}]}}
index 3b1a96b767f021b8541f625624fc540fb1d20eb1..fbd222a4331498fcb3d33ea2486e0d3eadae1040 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 46,"flags" : 0, "expr" : [ { "type" : "payload", "dreg" : 1, "offset" : 9, "len" : 1, "base" : "link"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 1, "data0" : "0x00000006"}}}, { "type" : "payload", "dreg" : 1, "offset" : 0, "len" : 8, "base" : "link"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 8, "data0" : "0x16000004", "data1" : "0x00000000"}}}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":46,"flags":0,"expr":[{"type":"payload","dreg":1,"offset":9,"len":1,"base":"link"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":1,"data0":"0x00000006"}}},{"type":"payload","dreg":1,"offset":0,"len":8,"base":"link"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":8,"data0":"0x16000004","data1":"0x00000000"}}}]}}
index 2f3610063949e81eebbbb11d861886fdbfafba6e..4ea2988d9f881d12bce43870df369df0f47e1d61 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 47,"flags" : 0, "expr" : [ { "type" : "payload", "dreg" : 1, "offset" : 9, "len" : 1, "base" : "link"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 1, "data0" : "0x00000006"}}}, { "type" : "payload", "dreg" : 1, "offset" : 0, "len" : 8, "base" : "link"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 8, "data0" : "0x16000004", "data1" : "0x00000000"}}}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":47,"flags":0,"expr":[{"type":"payload","dreg":1,"offset":9,"len":1,"base":"link"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":1,"data0":"0x00000006"}}},{"type":"payload","dreg":1,"offset":0,"len":8,"base":"link"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":8,"data0":"0x16000004","data1":"0x00000000"}}}]}}
index 86fbd834970b7421f003ded5aedc8b3eb22fe4b9..af6726278931fdb595c6ccfbcd87558e486e1b73 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 48,"flags" : 0, "expr" : [ { "type" : "meta", "dreg" : 1, "key" : "len"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x000003e8"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":48,"flags":0,"expr":[{"type":"meta","dreg":1,"key":"len"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x000003e8"}}},{"type":"counter","pkts":0,"bytes":0}]}}
index dc6a680767d13fcec4d3a0cc410f761d49583d90..c44c12cc2af62dae08a321b5e574ff660cf4fd58 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 49,"flags" : 0, "expr" : [ { "type" : "meta", "dreg" : 1, "key" : "mark"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x00000000"}}}, { "type" : "counter", "pkts" : 55, "bytes" : 11407}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":49,"flags":0,"expr":[{"type":"meta","dreg":1,"key":"mark"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x00000000"}}},{"type":"counter","pkts":55,"bytes":11407}]}}
index 3845a8c35a4f0a91c0d50214fb42798b0d63ef32..6ca0004c33848cf3c38a9ca075b2795e7a717bca 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 50,"flags" : 0, "expr" : [ { "type" : "meta", "dreg" : 1, "key" : "iif"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x00000001"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":50,"flags":0,"expr":[{"type":"meta","dreg":1,"key":"iif"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x00000001"}}},{"type":"counter","pkts":0,"bytes":0}]}}
index f2f178479188e3aaaca4333704478e05549628a3..8032664a2d245f1841da9aadef2c866b2a9e1d1d 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 51,"flags" : 0, "expr" : [ { "type" : "meta", "dreg" : 1, "key" : "iifname"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 16, "data0" : "0x00000000", "data1" : "0x00000000", "data2" : "0x65000000", "data3" : "0x00306874"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":51,"flags":0,"expr":[{"type":"meta","dreg":1,"key":"iifname"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":16,"data0":"0x00000000","data1":"0x00000000","data2":"0x65000000","data3":"0x00306874"}}},{"type":"counter","pkts":0,"bytes":0}]}}
index 7d160172dda40f5e4914136b68377fa28f9f830e..40efcb98f40be02939f46f08eecf0255a3c94a6a 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 52,"flags" : 0, "expr" : [ { "type" : "meta", "dreg" : 1, "key" : "oif"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x00000001"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":52,"flags":0,"expr":[{"type":"meta","dreg":1,"key":"oif"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x00000001"}}},{"type":"counter","pkts":0,"bytes":0}]}}
index 2ba527c141e57bc7f2fb33702d06b55b9602c8b5..631668b7c2fcce6fddd3cd129625acb108ffaa09 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 53,"flags" : 0, "expr" : [ { "type" : "meta", "dreg" : 1, "key" : "oifname"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 16, "data0" : "0x00000000", "data1" : "0x00000000", "data2" : "0x65000000", "data3" : "0x00306874"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":53,"flags":0,"expr":[{"type":"meta","dreg":1,"key":"oifname"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":16,"data0":"0x00000000","data1":"0x00000000","data2":"0x65000000","data3":"0x00306874"}}},{"type":"counter","pkts":0,"bytes":0}]}}
index a222e1de35b4086b901bc774bd96eb62e01ed37e..4f7448fe070d99d7bc3021f168cf731cd7e47027 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 54,"flags" : 0, "expr" : [ { "type" : "meta", "dreg" : 1, "key" : "skuid"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x000003e8"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":54,"flags":0,"expr":[{"type":"meta","dreg":1,"key":"skuid"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x000003e8"}}},{"type":"counter","pkts":0,"bytes":0}]}}
index 152734956034618e7539b2af2b6000483f9269d7..3b299cb47bc516ada577b4b74e310434a105aaf6 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 55,"flags" : 0, "expr" : [ { "type" : "meta", "dreg" : 1, "key" : "skgid"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x000003e8"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":55,"flags":0,"expr":[{"type":"meta","dreg":1,"key":"skgid"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x000003e8"}}},{"type":"counter","pkts":0,"bytes":0}]}}
index b33dd78c58891b14d60592041e70d1cccd5db5d8..05892a853601d7d32897dfde366267b5069e0a6c 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 56,"flags" : 0, "expr" : [ { "type" : "meta", "dreg" : 1, "key" : "secmark"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x00000000"}}}, { "type" : "counter", "pkts" : 55, "bytes" : 11407}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":56,"flags":0,"expr":[{"type":"meta","dreg":1,"key":"secmark"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x00000000"}}},{"type":"counter","pkts":55,"bytes":11407}]}}
index 9c0a1eb2ff9968e8c3dee8b385936944b36b960e..cbab7f04e64060f8ad9b49735ea06a4b6bb54fe8 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 57,"flags" : 0, "expr" : [ { "type" : "meta", "dreg" : 1, "key" : "len"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x000003e8"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":57,"flags":0,"expr":[{"type":"meta","dreg":1,"key":"len"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x000003e8"}}},{"type":"counter","pkts":0,"bytes":0}]}}
index 69347483eae6eae50c7ee36b7481f07c78d5eb47..bbdc0a1737208bc1fbf9d1fd2dd5536d3e90d98b 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 58,"flags" : 0, "expr" : [ { "type" : "meta", "dreg" : 1, "key" : "protocol"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 2, "data0" : "0x00000008"}}}, { "type" : "counter", "pkts" : 55, "bytes" : 11407}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":58,"flags":0,"expr":[{"type":"meta","dreg":1,"key":"protocol"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":2,"data0":"0x00000008"}}},{"type":"counter","pkts":55,"bytes":11407}]}}
index 298a2916727199c004e2043e611bb529e5de43c2..9b2476e3e73483d71f467999e995a8817bc039d6 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 59,"flags" : 0, "expr" : [ { "type" : "meta", "dreg" : 1, "key" : "mark"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x00000000"}}}, { "type" : "counter", "pkts" : 55, "bytes" : 11407}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":59,"flags":0,"expr":[{"type":"meta","dreg":1,"key":"mark"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x00000000"}}},{"type":"counter","pkts":55,"bytes":11407}]}}
index e124411278f528623cef9fd4fecf5e462a4b0a80..afd20caf2b96cb5f931bbfe95124d32d51d370be 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 60,"flags" : 0, "expr" : [ { "type" : "meta", "dreg" : 1, "key" : "iif"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x00000001"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":60,"flags":0,"expr":[{"type":"meta","dreg":1,"key":"iif"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x00000001"}}},{"type":"counter","pkts":0,"bytes":0}]}}
index f74acf2faba02f96ec11e11e4922370ed70618be..bfe7ed5aa1eecdd278051a058200bfad6eb4535a 100644 (file)
@@ -1 +1 @@
-{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 61,"flags" : 0, "expr" : [ { "type" : "meta", "dreg" : 1, "key" : "iifname"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 16, "data0" : "0x00000000", "data1" : "0x00000000", "data2" : "0x65000000", "data3" : "0x00306874"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}]}}
+{"rule":{"family":"ip","table":"filter","chain":"output","handle":61,"flags":0,"expr":[{"type":"meta","dreg":1,"key":"iifname"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":16,"data0":"0x00000000","data1":"0x00000000","data2":"0x65000000","data3":"0x00306874"}}},{"type":"counter","pkts":0,"bytes":0}]}}
index c5200eb333425ad0f11af2fb96c96eea47a5294f..0e52f704e107b249391a8a0edaf86cf8c0feb5d1 100644 (file)
@@ -1 +1 @@
-{ "set": { "name": "set0","table": "filter","flags": 3,"family": "ip","key_type": 12,"key_len": 2,"set_elem": [{"flags": 0,"key": {"data_reg": { "type" : "value", "len" : 2, "data0" : "0x00001700"}}}, {"flags": 0,"key": {"data_reg": { "type" : "value", "len" : 2, "data0" : "0x00001600"}}}]}}
+{"set":{"name":"set0","table":"filter","flags":3,"family":"ip","key_type":12,"key_len":2,"set_elem":[{"flags":0,"key":{"data_reg":{"type":"value","len":2,"data0":"0x00001700"}}},{"flags":0,"key":{"data_reg":{"type":"value","len":2,"data0":"0x00001600"}}}]}}
index be3e564da22af5558d57eb1e04b14b4ee69917e1..90afec3477f69bbc8f493c9b2c76d51d2b10a3b5 100644 (file)
@@ -1 +1 @@
-{ "set": { "name": "map0","table": "filter","flags": 11,"family": "ip","key_type": 12,"key_len": 2,"data_type": 4294967040,"data_len": 16,"set_elem": [{"flags": 0,"key": {"data_reg": { "type" : "value", "len" : 2, "data0" : "0x00001700"}},"data": {"data_reg": { "type" : "chain", "chain" : "forward"}}}, {"flags": 0,"key": {"data_reg": { "type" : "value", "len" : 2, "data0" : "0x00001600"}},"data": {"data_reg": { "type" : "chain", "chain" : "chain1"}}}]}}
+{"set":{"name":"map0","table":"filter","flags":11,"family":"ip","key_type":12,"key_len":2,"data_type":4294967040,"data_len":16,"set_elem":[{"flags":0,"key":{"data_reg":{"type":"value","len":2,"data0":"0x00001700"}},"data":{"data_reg":{"type":"chain","chain":"forward"}}},{"flags":0,"key":{"data_reg":{"type":"value","len":2,"data0":"0x00001600"}},"data":{"data_reg":{"type":"chain","chain":"chain1"}}}]}}
index c4fffa1e174da1ed521ef05cec14482477c6e1ca..a1baec886bf4d213cc95eb221b3af74dae62d34d 100644 (file)
@@ -1,2 +1,2 @@
-{ "nftables": [{"table" : {"name" : "filter","family" : "ip","flags" : 0}},{"table" : {"name" : "filter2","family" : "ip6","flags" : 0}},{ "chain": {"name": "input","handle": 1,"bytes": 10681449,"packets": 16216,"family": "ip","table": "filter","use": 0,"type": "filter","hooknum": "input","prio": 0,"policy": "accept"}},{ "chain": {"name": "forward","handle": 2,"bytes": 0,"packets": 0,"family": "ip","table": "filter","use": 0,"type": "filter","hooknum": "forward","prio": 0,"policy": "accept"}},{ "chain": {"name": "output","handle": 3,"bytes": 2375830,"packets": 15184,"family": "ip","table": "filter","use": 0,"type": "filter","hooknum": "output","prio": 0,"policy": "accept"}},{ "chain": {"name": "chain1","handle": 4,"bytes": 0,"packets": 0,"family": "ip","table": "filter","use": 0}},{ "set": { "name": "set0","table": "filter","flags": 3,"family": "ip","key_type": 12,"key_len": 2}},{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 6,"flags" : 0, " expr" : [ { "type" : "payload", "dreg" : 1, "offset" : 16, "len" : 4, "base" : "link"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x0100a8c0"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}, { "type" : "immediate", "dreg" : 0, "immediatedata" : {"data_reg": {"type" : "verdict", "verdict" : "drop"}}}]}},{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 9,"flags" : 0, "expr" : [ { "type" : "payload", "dreg" : 1, "offset" : 9, "len" : 1, "base" : "link"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 1, "data0" : "0x00000006"}}}, { "type" : "payload", "dreg" : 1, "offset" : 2, "len" : 2, "base" : "link"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 2, "data0" : "0x00001600"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}]}},{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 10,"flags" : 0, "expr" : [ { "type" : "payload", "dreg" : 1, "offset" : 16, "len" : 4, "base" : "link"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x0100a8c0"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}]}},{ "rule": { "family" : "ip", "table" : "filter", "chain"  : "output", "handle" : 11,"flags" : 0, "expr" : [ { "type" : "payload", "dreg" : 1, "offset" : 16, "len" : 4, "base" : "link"}, { "type" : "cmp", "sreg" : 1, "op" : "eq", "cmpdata" : {"data_reg": { "type" : "value", "len" : 4, "data0" : "0x0100a8c0"}}}, { "type" : "counter", "pkts" : 0, "bytes" : 0}, { "type" : "immediate", "dreg" : 0, "immediatedata" : {"data_reg": {"type" : "verdict", "verdict" : "drop"}}}]}}]}
+{"nftables":[{"table":{"name":"filter","family":"ip","flags":0}},{"table":{"name":"filter2","family":"ip6","flags":0}},{"chain":{"name":"input","handle":1,"bytes":10681449,"packets":16216,"family":"ip","table":"filter","use":0,"type":"filter","hooknum":"input","prio":0,"policy":"accept"}},{"chain":{"name":"forward","handle":2,"bytes":0,"packets":0,"family":"ip","table":"filter","use":0,"type":"filter","hooknum":"forward","prio":0,"policy":"accept"}},{"chain":{"name":"output","handle":3,"bytes":2375830,"packets":15184,"family":"ip","table":"filter","use":0,"type":"filter","hooknum":"output","prio":0,"policy":"accept"}},{"chain":{"name":"chain1","handle":4,"bytes":0,"packets":0,"family":"ip","table":"filter","use":0}},{"set":{"name":"set0","table":"filter","flags":3,"family":"ip","key_type":12,"key_len":2}},{"rule":{"family":"ip","table":"filter","chain":"output","handle":6,"flags":0,"expr":[{"type":"payload","dreg":1,"offset":16,"len":4,"base":"link"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x0100a8c0"}}},{"type":"counter","pkts":0,"bytes":0},{"type":"immediate","dreg":0,"immediatedata":{"data_reg":{"type":"verdict","verdict":"drop"}}}]}},{"rule":{"family":"ip","table":"filter","chain":"output","handle":9,"flags":0,"expr":[{"type":"payload","dreg":1,"offset":9,"len":1,"base":"link"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":1,"data0":"0x00000006"}}},{"type":"payload","dreg":1,"offset":2,"len":2,"base":"link"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":2,"data0":"0x00001600"}}},{"type":"counter","pkts":0,"bytes":0}]}},{"rule":{"family":"ip","table":"filter","chain":"output","handle":10,"flags":0,"expr":[{"type":"payload","dreg":1,"offset":16,"len":4,"base":"link"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x0100a8c0"}}},{"type":"counter","pkts":0,"bytes":0}]}},{"rule":{"family":"ip","table":"filter","chain":"output","handle":11,"flags":0,"expr":[{"type":"payload","dreg":1,"offset":16,"len":4,"base":"link"},{"type":"cmp","sreg":1,"op":"eq","cmpdata":{"data_reg":{"type":"value","len":4,"data0":"0x0100a8c0"}}},{"type":"counter","pkts":0,"bytes":0},{"type":"immediate","dreg":0,"immediatedata":{"data_reg":{"type":"verdict","verdict":"drop"}}}]}}]}