@@ -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);
@@ -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,
@@ -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);
@@ -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);
@@ -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;
@@ -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);
}
@@ -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;
@@ -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);
@@ -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);
@@ -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;
@@ -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:
@@ -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);
@@ -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);
@@ -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;
@@ -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);
}
@@ -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);
@@ -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);
@@ -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);
@@ -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,
@@ -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);
@@ -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,
@@ -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);
@@ -1 +1 @@
-{"table" : {"name" : "filter","family" : "ip","flags" : 0}}
+{"table":{"name":"filter","family":"ip","flags":0}}
@@ -1 +1 @@
-{"table" : {"name" : "filter2","family" : "ip6","flags" : 0}}
+{"table":{"name":"filter2","family":"ip6","flags":0}}
@@ -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"}}
@@ -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"}}
@@ -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"}}
@@ -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}}
@@ -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"}}}]}}
@@ -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}]}}
@@ -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"}}}]}}
@@ -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}]}}
@@ -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"}}}]}}
@@ -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}]}}
@@ -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"}}}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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"}}}]}}
@@ -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"}]}}
@@ -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}]}}
@@ -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"}}}]}}
@@ -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"}}}]}}
@@ -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"}}}]}}
@@ -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}]}}
@@ -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"}}}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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"}}}]}}
@@ -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"}}}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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}]}}
@@ -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"}}}]}}
@@ -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"}}}]}}
@@ -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"}}}]}}]}