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()
91 markinfo->mark = cb->val.mark; in MARK_parse_v0()
95 "MARK target: kernel too old for --%s", in MARK_parse_v0()
104 "MARK target: Parameter --set/and/or-mark" in MARK_check()
124 markinfo->mark = cb->val.u32; in MARK_parse_v1()
134 info->mark = cb->val.mark; in mark_tg_parse()
138 info->mark = cb->val.mark; in mark_tg_parse()
139 info->mask = cb->val.mark | cb->val.mask; in mark_tg_parse()
142 info->mark = 0; in mark_tg_parse()
146 info->mark = info->mask = cb->val.u32; in mark_tg_parse()
149 info->mark = cb->val.u32; in mark_tg_parse()
158 xtables_error(PARAMETER_PROBLEM, "MARK: One of the --set-xmark, " in mark_tg_check()
159 "--{and,or,xor,set}-mark options is required"); in mark_tg_check()
163 print_mark(unsigned long mark) in print_mark() argument
165 printf(" 0x%lx", mark); in print_mark()
173 printf(" MARK set"); in MARK_print_v0()
174 print_mark(markinfo->mark); in MARK_print_v0()
182 printf(" --set-mark"); in MARK_save_v0()
183 print_mark(markinfo->mark); in MARK_save_v0()
194 printf(" MARK set"); in MARK_print_v1()
197 printf(" MARK and"); in MARK_print_v1()
200 printf(" MARK or"); in MARK_print_v1()
203 print_mark(markinfo->mark); in MARK_print_v1()
211 if (info->mark == 0) in mark_tg_print()
212 printf(" MARK and 0x%x", (unsigned int)(uint32_t)~info->mask); in mark_tg_print()
213 else if (info->mark == info->mask) in mark_tg_print()
214 printf(" MARK or 0x%x", info->mark); in mark_tg_print()
216 printf(" MARK xor 0x%x", info->mark); in mark_tg_print()
218 printf(" MARK set 0x%x", info->mark); in mark_tg_print()
220 printf(" MARK xset 0x%x/0x%x", info->mark, info->mask); in mark_tg_print()
230 printf(" --set-mark"); in MARK_save_v1()
233 printf(" --and-mark"); in MARK_save_v1()
236 printf(" --or-mark"); in MARK_save_v1()
239 print_mark(markinfo->mark); in MARK_save_v1()
246 printf(" --set-xmark 0x%x/0x%x", info->mark, info->mask); in mark_tg_save()
253 if (info->mark == 0) in mark_tg_arp_save()
254 printf(" --and-mark %x", (unsigned int)(uint32_t)~info->mask); in mark_tg_arp_save()
255 else if (info->mark == info->mask) in mark_tg_arp_save()
256 printf(" --or-mark %x", info->mark); in mark_tg_arp_save()
258 printf(" --set-mark %x", info->mark); in mark_tg_arp_save()
272 { .name = "set-mark", .has_arg = required_argument, .flag = 0, .val = MARK_OPT },
273 { .name = "and-mark", .has_arg = required_argument, .flag = 0, .val = AND_MARK_OPT },
274 { .name = "or-mark", .has_arg = required_argument, .flag = 0, .val = OR_MARK_OPT },
290 "Bad mark value `%s'", optarg); in mark_tg_arp_parse()
293 info->mark = i; in mark_tg_arp_parse()
296 "MARK: Can't specify --set-mark twice"); in mark_tg_arp_parse()
302 "Bad mark value `%s'", optarg); in mark_tg_arp_parse()
305 info->mark = 0; in mark_tg_arp_parse()
309 "MARK: Can't specify --and-mark twice"); in mark_tg_arp_parse()
315 "Bad mark value `%s'", optarg); in mark_tg_arp_parse()
318 info->mark = info->mask = i; in mark_tg_arp_parse()
321 "MARK: Can't specify --or-mark twice"); in mark_tg_arp_parse()
335 xt_xlate_add(xl, "meta mark set "); in mark_tg_xlate()
338 xt_xlate_add(xl, "0x%x ", info->mark); in mark_tg_xlate()
339 else if (info->mark == 0) in mark_tg_xlate()
340 xt_xlate_add(xl, "mark and 0x%x ", ~info->mask); in mark_tg_xlate()
341 else if (info->mark == info->mask) in mark_tg_xlate()
342 xt_xlate_add(xl, "mark or 0x%x ", info->mark); in mark_tg_xlate()
344 xt_xlate_add(xl, "mark xor 0x%x ", info->mark); in mark_tg_xlate()
346 xt_xlate_add(xl, "mark and 0x%x xor 0x%x ", ~info->mask, in mark_tg_xlate()
347 info->mark); in mark_tg_xlate()
358 xt_xlate_add(xl, "meta mark set "); in MARK_xlate()
362 xt_xlate_add(xl, "0x%x ", (uint32_t)markinfo->mark); in MARK_xlate()
365 xt_xlate_add(xl, "mark and 0x%x ", (uint32_t)markinfo->mark); in MARK_xlate()
368 xt_xlate_add(xl, "mark or 0x%x ", (uint32_t)markinfo->mark); in MARK_xlate()
378 .name = "MARK",
392 .name = "MARK",
407 .name = "MARK",
422 .name = "MARK",