The kernel TCP code needs to be modified to find the CC options in incoming packets.
The original specification of TCP/IP stated that the code should be able to handle all options even if it didn't implement their functionality [12]. The tcp_options() function looks after the finding of options. If it finds an option is doesn't recognise, it ignores it and carries on. The code for recognising options is inside a switch statement. The three CC options had to be added to this switch and the correct flags and variables set if they were found. The format for checking the CC values is as follows:
case TCPOPT_CC:
if(opsize==TCPOLEN_CCOPT && sk->TF_REQ_CC)) {
sk->TOF_CC = 1;
sk->cc_recv = ntohl(*(unsigned long *)ptr);
}
break;
}