Lines Matching full:mark
9 unsigned long mark; member
20 unsigned long mark; member
42 "MARK target options:\n" in MARK_help()
43 " --set-mark value Set nfmark value\n" in MARK_help()
44 " --and-mark value Binary AND the nfmark with value\n" in MARK_help()
45 " --or-mark value Binary OR the nfmark with value\n"); in MARK_help()
49 {.name = "set-mark", .id = O_SET_MARK, .type = XTTYPE_UINT32,
51 {.name = "and-mark", .id = O_AND_MARK, .type = XTTYPE_UINT32,
53 {.name = "or-mark", .id = O_OR_MARK, .type = XTTYPE_UINT32,
61 {.name = "set-mark", .id = O_SET_MARK, .type = XTTYPE_MARKMASK32,
63 {.name = "and-mark", .id = O_AND_MARK, .type = XTTYPE_UINT32,
65 {.name = "or-mark", .id = O_OR_MARK, .type = XTTYPE_UINT32,
67 {.name = "xor-mark", .id = O_XOR_MARK, .type = XTTYPE_UINT32,
75 "MARK target options:\n" in mark_tg_help()
77 " --set-mark value[/mask] Clear bits in mask and OR value into nfmark\n" in mark_tg_help()
78 " --and-mark bits Binary AND the nfmark with bits\n" in mark_tg_help()
79 " --or-mark bits Binary OR the nfmark with bits\n" in mark_tg_help()
80 " --xor-mark bits Binary XOR the nfmark with bits\n"); in mark_tg_help()
90 markinfo->mark = cb->val.mark; in MARK_parse_v0()
94 "MARK target: kernel too old for --%s", in MARK_parse_v0()
103 "MARK target: Parameter --set/and/or-mark" in MARK_check()
123 markinfo->mark = cb->val.u32; in MARK_parse_v1()
133 info->mark = cb->val.mark; in mark_tg_parse()
137 info->mark = cb->val.mark; in mark_tg_parse()
138 info->mask = cb->val.mark | cb->val.mask; in mark_tg_parse()
141 info->mark = 0; in mark_tg_parse()
145 info->mark = info->mask = cb->val.u32; in mark_tg_parse()
148 info->mark = cb->val.u32; in mark_tg_parse()
157 xtables_error(PARAMETER_PROBLEM, "MARK: One of the --set-xmark, " in mark_tg_check()
158 "--{and,or,xor,set}-mark options is required"); in mark_tg_check()
162 print_mark(unsigned long mark) in print_mark() argument
164 printf(" 0x%lx", mark); in print_mark()
172 printf(" MARK set"); in MARK_print_v0()
173 print_mark(markinfo->mark); in MARK_print_v0()
181 printf(" --set-mark"); in MARK_save_v0()
182 print_mark(markinfo->mark); in MARK_save_v0()
193 printf(" MARK set"); in MARK_print_v1()
196 printf(" MARK and"); in MARK_print_v1()
199 printf(" MARK or"); in MARK_print_v1()
202 print_mark(markinfo->mark); in MARK_print_v1()
210 if (info->mark == 0) in mark_tg_print()
211 printf(" MARK and 0x%x", (unsigned int)(uint32_t)~info->mask); in mark_tg_print()
212 else if (info->mark == info->mask) in mark_tg_print()
213 printf(" MARK or 0x%x", info->mark); in mark_tg_print()
215 printf(" MARK xor 0x%x", info->mark); in mark_tg_print()
217 printf(" MARK set 0x%x", info->mark); in mark_tg_print()
219 printf(" MARK xset 0x%x/0x%x", info->mark, info->mask); in mark_tg_print()
229 printf(" --set-mark"); in MARK_save_v1()
232 printf(" --and-mark"); in MARK_save_v1()
235 printf(" --or-mark"); in MARK_save_v1()
238 print_mark(markinfo->mark); in MARK_save_v1()
245 printf(" --set-xmark 0x%x/0x%x", info->mark, info->mask); in mark_tg_save()
252 if (info->mark == 0) in mark_tg_arp_save()
253 printf(" --and-mark %x", (unsigned int)(uint32_t)~info->mask); in mark_tg_arp_save()
254 else if (info->mark == info->mask) in mark_tg_arp_save()
255 printf(" --or-mark %x", info->mark); in mark_tg_arp_save()
257 printf(" --set-mark %x", info->mark); in mark_tg_arp_save()
271 { .name = "set-mark", .has_arg = required_argument, .flag = 0, .val = MARK_OPT },
272 { .name = "and-mark", .has_arg = required_argument, .flag = 0, .val = AND_MARK_OPT },
273 { .name = "or-mark", .has_arg = required_argument, .flag = 0, .val = OR_MARK_OPT },
289 "Bad mark value `%s'", optarg); in mark_tg_arp_parse()
292 info->mark = i; in mark_tg_arp_parse()
295 "MARK: Can't specify --set-mark twice"); in mark_tg_arp_parse()
301 "Bad mark value `%s'", optarg); in mark_tg_arp_parse()
304 info->mark = 0; in mark_tg_arp_parse()
308 "MARK: Can't specify --and-mark twice"); in mark_tg_arp_parse()
314 "Bad mark value `%s'", optarg); in mark_tg_arp_parse()
317 info->mark = info->mask = i; in mark_tg_arp_parse()
320 "MARK: Can't specify --or-mark twice"); in mark_tg_arp_parse()
334 xt_xlate_add(xl, "meta mark set "); in mark_tg_xlate()
337 xt_xlate_add(xl, "0x%x ", info->mark); in mark_tg_xlate()
338 else if (info->mark == 0) in mark_tg_xlate()
339 xt_xlate_add(xl, "mark and 0x%x ", ~info->mask); in mark_tg_xlate()
340 else if (info->mark == info->mask) in mark_tg_xlate()
341 xt_xlate_add(xl, "mark or 0x%x ", info->mark); in mark_tg_xlate()
343 xt_xlate_add(xl, "mark xor 0x%x ", info->mark); in mark_tg_xlate()
345 xt_xlate_add(xl, "mark and 0x%x xor 0x%x ", ~info->mask, in mark_tg_xlate()
346 info->mark); in mark_tg_xlate()
357 xt_xlate_add(xl, "meta mark set "); in MARK_xlate()
361 xt_xlate_add(xl, "0x%x ", (uint32_t)markinfo->mark); in MARK_xlate()
364 xt_xlate_add(xl, "mark and 0x%x ", (uint32_t)markinfo->mark); in MARK_xlate()
367 xt_xlate_add(xl, "mark or 0x%x ", (uint32_t)markinfo->mark); in MARK_xlate()
379 .name = "MARK",
393 .name = "MARK",
408 .name = "MARK",
423 .name = "MARK",