* Skip past the param header and then we will find the param that caused the * problem. There are a number of param's in a ASCONF OR the prsctp param * these will turn of specific features. * XXX: Is this the right thing to do? */
| 1062 | * XXX: Is this the right thing to do? |
| 1063 | */ |
| 1064 | static void |
| 1065 | sctp_process_unrecog_param(struct sctp_tcb *stcb, uint16_t parameter_type) |
| 1066 | { |
| 1067 | switch (parameter_type) { |
| 1068 | /* pr-sctp draft */ |
| 1069 | case SCTP_PRSCTP_SUPPORTED: |
| 1070 | stcb->asoc.prsctp_supported = 0; |
| 1071 | break; |
| 1072 | case SCTP_SUPPORTED_CHUNK_EXT: |
| 1073 | break; |
| 1074 | /* draft-ietf-tsvwg-addip-sctp */ |
| 1075 | case SCTP_HAS_NAT_SUPPORT: |
| 1076 | stcb->asoc.peer_supports_nat = 0; |
| 1077 | break; |
| 1078 | case SCTP_ADD_IP_ADDRESS: |
| 1079 | case SCTP_DEL_IP_ADDRESS: |
| 1080 | case SCTP_SET_PRIM_ADDR: |
| 1081 | stcb->asoc.asconf_supported = 0; |
| 1082 | break; |
| 1083 | case SCTP_SUCCESS_REPORT: |
| 1084 | case SCTP_ERROR_CAUSE_IND: |
| 1085 | SCTPDBG(SCTP_DEBUG_INPUT2, "Huh, the peer does not support success? or error cause?\n"); |
| 1086 | SCTPDBG(SCTP_DEBUG_INPUT2, |
| 1087 | "Turning off ASCONF to this strange peer\n"); |
| 1088 | stcb->asoc.asconf_supported = 0; |
| 1089 | break; |
| 1090 | default: |
| 1091 | SCTPDBG(SCTP_DEBUG_INPUT2, |
| 1092 | "Peer does not support param type %d (0x%x)??\n", |
| 1093 | parameter_type, parameter_type); |
| 1094 | break; |
| 1095 | } |
| 1096 | } |
| 1097 | |
| 1098 | static int |
| 1099 | sctp_handle_error(struct sctp_chunkhdr *ch, |