diff --git a/sys/netinet/sctp_header.h b/sys/netinet/sctp_header.h index d38c8375fb32..850290d52f52 100644 --- a/sys/netinet/sctp_header.h +++ b/sys/netinet/sctp_header.h @@ -160,7 +160,7 @@ struct sctp_idata { union { uint32_t protocol_id; uint32_t fsn; /* Fragment Sequence Number */ - }; + } ppid_fsn; /* user data follows */ } SCTP_PACKED; diff --git a/sys/netinet/sctp_indata.c b/sys/netinet/sctp_indata.c index 76f0ad33df78..6415fb2a8d07 100644 --- a/sys/netinet/sctp_indata.c +++ b/sys/netinet/sctp_indata.c @@ -1558,7 +1558,7 @@ sctp_process_a_data_chunk(struct sctp_tcb *stcb, struct sctp_association *asoc, if (ch->ch.chunk_flags & SCTP_DATA_FIRST_FRAG) fsn = 0; else - fsn = ntohl(nch->dp.fsn); + fsn = ntohl(nch->dp.ppid_fsn.fsn); old_data = 0; } else { ch = (struct sctp_data_chunk *)sctp_m_getptr(*m, offset, diff --git a/sys/netinet/sctp_output.c b/sys/netinet/sctp_output.c index 4e683a21ffcb..ef789eabddd0 100644 --- a/sys/netinet/sctp_output.c +++ b/sys/netinet/sctp_output.c @@ -7641,9 +7641,9 @@ sctp_move_to_outqueue(struct sctp_tcb *stcb, ndchkh->dp.reserved = htons(0); ndchkh->dp.msg_id = htonl(sp->msg_id); if (sp->fsn == 0) - ndchkh->dp.protocol_id = chk->rec.data.payloadtype; + ndchkh->dp.ppid_fsn.protocol_id = chk->rec.data.payloadtype; else - ndchkh->dp.fsn = htonl(sp->fsn); + ndchkh->dp.ppid_fsn.fsn = htonl(sp->fsn); sp->fsn++; ndchkh->ch.chunk_length = htons(chk->send_size); }