else
sprintf(out, "%04x", ntohs(eth_type));
- print_string(PRINT_ANY, "eth_type", "\n eth_type %s", out);
+ print_nl();
+ print_string(PRINT_ANY, "eth_type", " eth_type %s", out);
*p_eth_type = eth_type;
}
else
sprintf(out, "%02x", ip_proto);
- print_string(PRINT_ANY, "ip_proto", "\n ip_proto %s", out);
+ print_nl();
+ print_string(PRINT_ANY, "ip_proto", " ip_proto %s", out);
*p_ip_proto = ip_proto;
}
continue;
if (mtf_mask & flags_str[i].flag) {
if (++count == 1) {
- print_string(PRINT_FP, NULL, "\n %s ", name);
+ print_nl();
+ print_string(PRINT_FP, NULL, " %s ", name);
open_json_object(name);
} else {
print_string(PRINT_FP, NULL, "/", NULL);
flower_ct_states[i].str);
}
- print_string(PRINT_ANY, "ct_state", "\n ct_state %s", out);
+ print_nl();
+ print_string(PRINT_ANY, "ct_state", " ct_state %s", out);
}
static void flower_print_ct_label(struct rtattr *attr,
}
*p = '\0';
- print_string(PRINT_ANY, "ct_label", "\n ct_label %s", out);
+ print_nl();
+ print_string(PRINT_ANY, "ct_label", " ct_label %s", out);
}
static void flower_print_ct_zone(struct rtattr *attr,
if (!attr)
return;
- sprintf(namefrm,"\n %s %%u", name);
+ print_nl();
+ sprintf(namefrm, " %s %%u", name);
print_uint(PRINT_ANY, name, namefrm, rta_getattr_be32(attr));
}
static void flower_print_geneve_parts(const char *name, struct rtattr *attr,
char *key, char *mask)
{
- char *namefrm = "\n geneve_opt %s";
+ char *namefrm = " geneve_opt %s";
char *key_token, *mask_token, *out;
int len;
}
out[len - 1] = '\0';
+ print_nl();
print_string(PRINT_FP, name, namefrm, out);
free(out);
}
if (mask != UINT8_MAX)
sprintf(out + done, "/%d", mask);
- sprintf(namefrm,"\n %s %%s", name);
+ print_nl();
+ sprintf(namefrm, " %s %%s", name);
print_string(PRINT_ANY, name, namefrm, out);
}
if (!attr)
return;
- sprintf(namefrm,"\n %s %%u", name);
+ print_nl();
+ sprintf(namefrm, " %s %%u", name);
print_uint(PRINT_ANY, name, namefrm, rta_getattr_u32(attr));
}
if (tb[TCA_FLOWER_KEY_VLAN_ID]) {
struct rtattr *attr = tb[TCA_FLOWER_KEY_VLAN_ID];
- print_uint(PRINT_ANY, "vlan_id", "\n vlan_id %u",
+ print_nl();
+ print_uint(PRINT_ANY, "vlan_id", " vlan_id %u",
rta_getattr_u16(attr));
}
if (tb[TCA_FLOWER_KEY_VLAN_PRIO]) {
struct rtattr *attr = tb[TCA_FLOWER_KEY_VLAN_PRIO];
- print_uint(PRINT_ANY, "vlan_prio", "\n vlan_prio %d",
+ print_nl();
+ print_uint(PRINT_ANY, "vlan_prio", " vlan_prio %d",
rta_getattr_u8(attr));
}
SPRINT_BUF(buf);
struct rtattr *attr = tb[TCA_FLOWER_KEY_VLAN_ETH_TYPE];
- print_string(PRINT_ANY, "vlan_ethtype", "\n vlan_ethtype %s",
+ print_nl();
+ print_string(PRINT_ANY, "vlan_ethtype", " vlan_ethtype %s",
ll_proto_n2a(rta_getattr_u16(attr),
buf, sizeof(buf)));
}
if (tb[TCA_FLOWER_KEY_CVLAN_ID]) {
struct rtattr *attr = tb[TCA_FLOWER_KEY_CVLAN_ID];
- print_uint(PRINT_ANY, "cvlan_id", "\n cvlan_id %u",
+ print_nl();
+ print_uint(PRINT_ANY, "cvlan_id", " cvlan_id %u",
rta_getattr_u16(attr));
}
if (tb[TCA_FLOWER_KEY_CVLAN_PRIO]) {
struct rtattr *attr = tb[TCA_FLOWER_KEY_CVLAN_PRIO];
- print_uint(PRINT_ANY, "cvlan_prio", "\n cvlan_prio %d",
+ print_nl();
+ print_uint(PRINT_ANY, "cvlan_prio", " cvlan_prio %d",
rta_getattr_u8(attr));
}
SPRINT_BUF(buf);
struct rtattr *attr = tb[TCA_FLOWER_KEY_CVLAN_ETH_TYPE];
- print_string(PRINT_ANY, "cvlan_ethtype", "\n cvlan_ethtype %s",
+ print_nl();
+ print_string(PRINT_ANY, "cvlan_ethtype", " cvlan_ethtype %s",
ll_proto_n2a(rta_getattr_u16(attr),
buf, sizeof(buf)));
}
if (tb[TCA_FLOWER_FLAGS]) {
__u32 flags = rta_getattr_u32(tb[TCA_FLOWER_FLAGS]);
- if (flags & TCA_CLS_FLAGS_SKIP_HW)
- print_bool(PRINT_ANY, "skip_hw", "\n skip_hw", true);
- if (flags & TCA_CLS_FLAGS_SKIP_SW)
- print_bool(PRINT_ANY, "skip_sw", "\n skip_sw", true);
+ if (flags & TCA_CLS_FLAGS_SKIP_HW) {
+ print_nl();
+ print_bool(PRINT_ANY, "skip_hw", " skip_hw", true);
+ }
+ if (flags & TCA_CLS_FLAGS_SKIP_SW) {
+ print_nl();
+ print_bool(PRINT_ANY, "skip_sw", " skip_sw", true);
+ }
if (flags & TCA_CLS_FLAGS_IN_HW) {
- print_bool(PRINT_ANY, "in_hw", "\n in_hw", true);
+ print_nl();
+ print_bool(PRINT_ANY, "in_hw", " in_hw", true);
if (tb[TCA_FLOWER_IN_HW_COUNT]) {
__u32 count = rta_getattr_u32(tb[TCA_FLOWER_IN_HW_COUNT]);
" in_hw_count %u", count);
}
}
- else if (flags & TCA_CLS_FLAGS_NOT_IN_HW)
- print_bool(PRINT_ANY, "not_in_hw", "\n not_in_hw", true);
+ else if (flags & TCA_CLS_FLAGS_NOT_IN_HW) {
+ print_nl();
+ print_bool(PRINT_ANY, "not_in_hw", " not_in_hw", true);
+ }
}
if (tb[TCA_FLOWER_ACT])
uflag_4, uflag_5, uflag_6, uflag_7);
print_string(PRINT_ANY, "csum", "(%s) ", buf);
- print_action_control(f, "action ", sel->action, "\n");
+ print_action_control(f, "action ", sel->action, _SL_);
print_uint(PRINT_ANY, "index", "\tindex %u", sel->index);
print_int(PRINT_ANY, "ref", " ref %d", sel->refcnt);
print_int(PRINT_ANY, "bind", " bind %d", sel->bindcnt);
print_tm(f, tm);
}
}
- print_string(PRINT_FP, NULL, "%s", "\n");
+ print_nl();
return 0;
}
print_action_control(f, " ", p->action, "");
- print_uint(PRINT_ANY, "index", "\n\t index %u", p->index);
+ print_nl();
+ print_uint(PRINT_ANY, "index", "\t index %u", p->index);
print_int(PRINT_ANY, "ref", " ref %d", p->refcnt);
print_int(PRINT_ANY, "bind", " bind %d", p->bindcnt);
print_tm(f, tm);
}
}
- print_string(PRINT_FP, NULL, "%s", "\n ");
+ print_nl();
return 0;
}
pp = &pp_dummy;
}
open_json_object("prob");
- print_string(PRINT_ANY, "random_type", "\n\t random type %s",
+ print_nl();
+ print_string(PRINT_ANY, "random_type", "\t random type %s",
prob_n2a(pp->ptype));
print_action_control(f, " ", pp->paction, " ");
print_int(PRINT_ANY, "val", "val %d", pp->pval);
close_json_object();
#endif
- print_uint(PRINT_ANY, "index", "\n\t index %u", p->index);
+ print_nl();
+ print_uint(PRINT_ANY, "index", "\t index %u", p->index);
print_int(PRINT_ANY, "ref", " ref %d", p->refcnt);
print_int(PRINT_ANY, "bind", " bind %d", p->bindcnt);
if (show_stats) {
print_tm(f, tm);
}
}
- print_string(PRINT_FP, NULL, "%s", "\n");
+ print_nl();
return 0;
}
print_string(PRINT_ANY, "to_dev", " to device %s)", dev);
print_action_control(f, " ", p->action, "");
- print_uint(PRINT_ANY, "index", "\n \tindex %u", p->index);
+ print_nl();
+ print_uint(PRINT_ANY, "index", "\tindex %u", p->index);
print_int(PRINT_ANY, "ref", " ref %d", p->refcnt);
print_int(PRINT_ANY, "bind", " bind %d", p->bindcnt);
print_tm(f, tm);
}
}
- print_string(PRINT_FP, NULL, "%s", "\n ");
+ print_nl();
return 0;
}
}
print_action_control(f, " ", parm->action, "");
- print_uint(PRINT_ANY, "index", "\n\t index %u", parm->index);
+ print_nl();
+ print_uint(PRINT_ANY, "index", "\t index %u", parm->index);
print_int(PRINT_ANY, "ref", " ref %d", parm->refcnt);
print_int(PRINT_ANY, "bind", " bind %d", parm->bindcnt);
sel->nkeys);
}
- fprintf(f, "\n ");
+ print_nl();
free(keys_ex);
return 0;
print_tm(f, tm);
}
}
- fprintf(f, "\n");
+ print_nl();
return 0;
}
uint8_t type;
open_json_array(PRINT_JSON, name);
- print_string(PRINT_FP, name, "\n\t%s ", "geneve_opt");
+ print_nl();
+ print_string(PRINT_FP, name, "\t%s ", "geneve_opt");
while (rem) {
parse_rtattr(tb, TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX, i, rem);
}
print_action_control(f, " ", parm->action, "");
- print_uint(PRINT_ANY, "index", "\n\t index %u", parm->index);
+ print_nl();
+ print_uint(PRINT_ANY, "index", "\t index %u", parm->index);
print_int(PRINT_ANY, "ref", " ref %d", parm->refcnt);
print_int(PRINT_ANY, "bind", " bind %d", parm->bindcnt);
}
}
- print_string(PRINT_FP, NULL, "%s", "\n");
+ print_nl();
return 0;
}
print_tm(f, tm);
}
}
- fprintf(f, "\n");
+ print_nl();
xtables_free_opts(1);
fprintf(f, " ");
for (i = 0; i < num_tins; i++)
fprintf(f, " Tin %u", i);
- fprintf(f, "\n");
+ fprintf(f, "%s", _SL_);
};
#define GET_TSTAT(i, attr) (tstat[i][TCA_CAKE_TIN_STATS_ ## attr])
fprintf(f, name); \
for (i = 0; i < num_tins; i++) \
fprintf(f, " %12" fmts, val); \
- fprintf(f, "\n"); \
+ fprintf(f, "%s", _SL_); \
} \
} while (0)
if (st->qdisc_stats.drop_overmemory)
print_uint(PRINT_ANY, "drop_overmemory", " drop_overmemory %u",
st->qdisc_stats.drop_overmemory);
- print_uint(PRINT_ANY, "new_flows_len", "\n new_flows_len %u",
+ print_nl();
+ print_uint(PRINT_ANY, "new_flows_len", " new_flows_len %u",
st->qdisc_stats.new_flows_len);
print_uint(PRINT_ANY, "old_flows_len", " old_flows_len %u",
st->qdisc_stats.old_flows_len);
close_json_object();
}
}
- print_string(PRINT_FP, NULL, "\n", NULL);
+ print_nl();
if (show_stats && (tb[TCA_STATS] || tb[TCA_STATS2])) {
print_tcstats_attr(fp, tb, " ", NULL);
- print_string(PRINT_FP, NULL, "\n", NULL);
+ print_nl();
}
close_json_object();
}
close_json_object();
- print_string(PRINT_FP, NULL, "\n", NULL);
+ print_nl();
if (show_details && tb[TCA_STAB]) {
print_size_table(fp, " ", tb[TCA_STAB]);
- print_string(PRINT_FP, NULL, "\n", NULL);
+ print_nl();
}
if (show_stats) {
if (tb[TCA_STATS] || tb[TCA_STATS2] || tb[TCA_XSTATS]) {
print_tcstats_attr(fp, tb, " ", &xstats);
- print_string(PRINT_FP, NULL, "\n", NULL);
+ print_nl();
}
if (q && xstats && q->print_xstats) {
q->print_xstats(q, fp, xstats);
- print_string(PRINT_FP, NULL, "\n", NULL);
+ print_nl();
}
}
close_json_object();
memcpy(&q, RTA_DATA(tbs[TCA_STATS_QUEUE]),
MIN(RTA_PAYLOAD(tbs[TCA_STATS_QUEUE]), sizeof(q)));
if (!tbs[TCA_STATS_RATE_EST])
- print_string(PRINT_FP, NULL, "\n", "");
+ print_nl();
print_uint(PRINT_JSON, "backlog", NULL, q.backlog);
print_string(PRINT_FP, NULL, "%s", prefix);
print_string(PRINT_FP, NULL, "backlog %s",