ipv6 处理扩展头
//ah协议头处理 530 static struct inet6_protocol ah6_protocol = { 531 .handler = xfrm6_rcv, 532 .err_handler = ah6_err, 533 .flags = INET6_PROTO_NOPOLICY, 534 }; //路由协议头处理503 static struct inet6_protocol rthdr_protocol = {504 .handler = ipv6_rthdr_rcv,505 .flags = INET6_PROTO_NOPOLICY | INET6_PROTO_GSO_EXTHDR,506 }; //目的协议头处理508 static struct inet6_protocol destopt_protocol = {509 .handler = ipv6_destopt_rcv,510 .flags = INET6_PROTO_NOPOLICY | INET6_PROTO_GSO_EXTHDR,511 }; 513 static struct inet6_protocol nodata_protocol = {514 .handler = dst_discard,515 .flags = INET6_PROTO_NOPOLICY,516 }; //tcp协议头处理2095 static struct inet6_protocol tcpv6_protocol = {2096 .handler = tcp_v6_rcv,2097 .err_handler = tcp_v6_err,2098 .gso_send_check = tcp_v6_gso_send_check,2099 .gso_segment = tcp_tso_segment,2100 .gro_receive = tcp6_gro_receive,2101 .gro_complete = tcp6_gro_complete,2102 .flags = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,2103 };1033 static struct inet6_protocol udpv6_protocol = {1034 .handler = udpv6_rcv,1035 .err_handler = udpv6_err,1036 .flags = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,1037 }; //esp协议头处理561 static struct inet6_protocol esp6_protocol = {562 .handler = xfrm6_rcv,563 .err_handler = esp6_err,564 .flags = INET6_PROTO_NOPOLICY,565 }; //管道协议头处理136 static struct inet6_protocol tunnel6_protocol = {137 .handler = tunnel6_rcv,138 .err_handler = tunnel6_err,139 .flags = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,140 };141 142 static struct inet6_protocol tunnel46_protocol = {143 .handler = tunnel46_rcv,144 .err_handler = tunnel6_err,145 .flags = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,146 };?