add: *flags |= IPT_ECN_OP_SET_IP; break;
context: parse(int c, char **argv, int invert, unsigned int *flags,      const struct ipt_entry *entry,      struct ipt_entry_target **target){	unsigned int result;	struct ipt_ECN_info *einfo		= (struct ipt_ECN_info *)(*target)->data;	switch (c) {	case 'F':		if (*flags)			exit_error(PARAMETER_PROBLEM,			        "ECN target: Only use --ecn-tcp-remove ONCE!");		einfo->operation = IPT_ECN_OP_SET_ECE | IPT_ECN_OP_SET_CWR;		einfo->proto.tcp.ece = 0;		einfo->proto.tcp.cwr = 0;		*flags = 1;		break;	case 'G':		if (*flags & IPT_ECN_OP_SET_CWR)			exit_error(PARAMETER_PROBLEM,				"ECN target: Only use --ecn-tcp-cwr ONCE!");		if (string_to_number(optarg, 0, 1, &result))			exit_error(PARAMETER_PROBLEM,				   "ECN target: Value out of range");		einfo->operation |= IPT_ECN_OP_SET_CWR;		einfo->proto.tcp.cwr = result;		*flags |= IPT_ECN_OP_SET_CWR;		break;	case 'H':		if (*flags & IPT_ECN_OP_SET_ECE)			exit_error(PARAMETER_PROBLEM,				"ECN target: Only use --ecn-tcp-ece ONCE!");		if (string_to_number(optarg, 0, 1, &result))			exit_error(PARAMETER_PROBLEM,				   "ECN target: Value out of range");		einfo->operation |= IPT_ECN_OP_SET_ECE;		einfo->proto.tcp.ece = result;		*flags |= IPT_ECN_OP_SET_ECE;		break;	case '9':		if (*flags & IPT_ECN_OP_SET_IP)			exit_error(PARAMETER_PROBLEM,				"ECN target: Only use --ecn-ip-ect ONCE!");		if (string_to_number(optarg, 0, 3, &result))			exit_error(PARAMETER_PROBLEM,				   "ECN target: Value out of range");		einfo->operation |= IPT_ECN_OP_SET_IP;		einfo->ip_ect = result;	default:		return 0;	}	return 1;}