@@ -13,6 +13,7 @@ LOG_MODULE_REGISTER(modem_cmux, CONFIG_MODEM_CMUX_LOG_LEVEL);
1313
1414#include <string.h>
1515
16+ #define MODEM_CMUX_SOF (0xF9)
1617#define MODEM_CMUX_FCS_POLYNOMIAL (0xE0)
1718#define MODEM_CMUX_FCS_INIT_VALUE (0xFF)
1819#define MODEM_CMUX_EA (0x01)
@@ -282,7 +283,7 @@ static uint16_t modem_cmux_transmit_frame(struct modem_cmux *cmux,
282283 data_len = MIN (data_len , CONFIG_MODEM_CMUX_MTU );
283284
284285 /* SOF */
285- buf [0 ] = 0xF9 ;
286+ buf [0 ] = MODEM_CMUX_SOF ;
286287
287288 /* DLCI Address (Max 63) */
288289 buf [1 ] = 0x01 | (frame -> cr << 1 ) | (frame -> dlci_address << 2 );
@@ -318,7 +319,7 @@ static uint16_t modem_cmux_transmit_frame(struct modem_cmux *cmux,
318319
319320 /* FCS and EOF will be put on the same call */
320321 buf [0 ] = fcs ;
321- buf [1 ] = 0xF9 ;
322+ buf [1 ] = MODEM_CMUX_SOF ;
322323 ring_buf_put (& cmux -> transmit_rb , buf , 2 );
323324 k_work_schedule (& cmux -> transmit_work , K_NO_WAIT );
324325 return data_len ;
@@ -744,7 +745,7 @@ static void modem_cmux_process_received_byte(struct modem_cmux *cmux, uint8_t by
744745
745746 switch (cmux -> receive_state ) {
746747 case MODEM_CMUX_RECEIVE_STATE_SOF :
747- if (byte == 0xF9 ) {
748+ if (byte == MODEM_CMUX_SOF ) {
748749 cmux -> receive_state = MODEM_CMUX_RECEIVE_STATE_RESYNC ;
749750 break ;
750751 }
@@ -756,7 +757,7 @@ static void modem_cmux_process_received_byte(struct modem_cmux *cmux, uint8_t by
756757 * Allow any number of consecutive flags (0xF9).
757758 * 0xF9 could also be a valid address field for DLCI 62.
758759 */
759- if (byte == 0xF9 ) {
760+ if (byte == MODEM_CMUX_SOF ) {
760761 break ;
761762 }
762763
@@ -813,7 +814,7 @@ static void modem_cmux_process_received_byte(struct modem_cmux *cmux, uint8_t by
813814
814815 if (cmux -> frame .data_len > CONFIG_MODEM_CMUX_MTU ) {
815816 LOG_ERR ("Too large frame" );
816- cmux -> receive_state = MODEM_CMUX_RECEIVE_STATE_DROP ;
817+ modem_cmux_drop_frame ( cmux ) ;
817818 break ;
818819 }
819820
@@ -838,15 +839,15 @@ static void modem_cmux_process_received_byte(struct modem_cmux *cmux, uint8_t by
838839
839840 if (cmux -> frame .data_len > CONFIG_MODEM_CMUX_MTU ) {
840841 LOG_ERR ("Too large frame" );
841- cmux -> receive_state = MODEM_CMUX_RECEIVE_STATE_DROP ;
842+ modem_cmux_drop_frame ( cmux ) ;
842843 break ;
843844 }
844845
845846 if (cmux -> frame .data_len > cmux -> receive_buf_size ) {
846847 LOG_ERR ("Indicated frame data length %u exceeds receive buffer size %u" ,
847848 cmux -> frame .data_len , cmux -> receive_buf_size );
848849
849- cmux -> receive_state = MODEM_CMUX_RECEIVE_STATE_DROP ;
850+ modem_cmux_drop_frame ( cmux ) ;
850851 break ;
851852 }
852853
@@ -873,7 +874,7 @@ static void modem_cmux_process_received_byte(struct modem_cmux *cmux, uint8_t by
873874 if (cmux -> receive_buf_len > cmux -> receive_buf_size ) {
874875 LOG_WRN ("Receive buffer overrun (%u > %u)" ,
875876 cmux -> receive_buf_len , cmux -> receive_buf_size );
876- cmux -> receive_state = MODEM_CMUX_RECEIVE_STATE_DROP ;
877+ modem_cmux_drop_frame ( cmux ) ;
877878 break ;
878879 }
879880
@@ -890,21 +891,16 @@ static void modem_cmux_process_received_byte(struct modem_cmux *cmux, uint8_t by
890891 if (fcs != byte ) {
891892 LOG_WRN ("Frame FCS error" );
892893
893- /* Drop frame */
894- cmux -> receive_state = MODEM_CMUX_RECEIVE_STATE_DROP ;
894+ modem_cmux_drop_frame (cmux );
895895 break ;
896896 }
897897
898898 cmux -> receive_state = MODEM_CMUX_RECEIVE_STATE_EOF ;
899899 break ;
900900
901- case MODEM_CMUX_RECEIVE_STATE_DROP :
902- modem_cmux_drop_frame (cmux );
903- break ;
904-
905901 case MODEM_CMUX_RECEIVE_STATE_EOF :
906902 /* Validate byte is EOF */
907- if (byte != 0xF9 ) {
903+ if (byte != MODEM_CMUX_SOF ) {
908904 /* Unexpected byte */
909905 modem_cmux_drop_frame (cmux );
910906 break ;
0 commit comments