rem: einfo->ip_ect = result;
add: einfo->ip_ect = (result << IPT_ECN_SHIFT);
context: parse(int c, char **argv, int invert, unsigned int *flags,      const struct ipt_entry *entry,      unsigned int *nfcache,      struct ipt_entry_match **match){	unsigned int result;	struct ipt_ecn_info *einfo		= (struct ipt_ecn_info *)(*match)->data;	switch (c) {	case 'F':		if (*flags & IPT_ECN_OP_MATCH_CWR)			exit_error(PARAMETER_PROBLEM,			           "ECN match: can only use parameter ONCE!");		check_inverse(optarg, &invert, &optind, 0);		einfo->operation |= IPT_ECN_OP_MATCH_CWR;		if (invert)			einfo->invert |= IPT_ECN_OP_MATCH_CWR;		*flags |= IPT_ECN_OP_MATCH_CWR;		break;	case 'G':		if (*flags & IPT_ECN_OP_MATCH_ECE)			exit_error(PARAMETER_PROBLEM,				   "ECN match: can only use parameter ONCE!");		check_inverse(optarg, &invert, &optind, 0);		einfo->operation |= IPT_ECN_OP_MATCH_ECE;		if (invert)			einfo->invert |= IPT_ECN_OP_MATCH_ECE;		*flags |= IPT_ECN_OP_MATCH_ECE;		break;	case 'H':		if (*flags & IPT_ECN_OP_MATCH_IP)			exit_error(PARAMETER_PROBLEM,				   "ECN match: can only use parameter ONCE!");		check_inverse(optarg, &invert, &optind, 0);		if (invert)			einfo->invert |= IPT_ECN_OP_MATCH_IP;		*flags |= IPT_ECN_OP_MATCH_IP;		einfo->operation |= IPT_ECN_OP_MATCH_IP;		if (string_to_number(optarg, 0, 3, &result))			exit_error(PARAMETER_PROBLEM,				   "ECN match: Value out of range");		einfo->ip_ect = result;		break;	default:		return 0;	}	return 1;}