File tree Expand file tree Collapse file tree 1 file changed +21
-0
lines changed Expand file tree Collapse file tree 1 file changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -855,6 +855,27 @@ static int nrf5_configure(const struct device *dev,
855855		break ;
856856#endif  /* CONFIG_IEEE802154_CSL_ENDPOINT */ 
857857
858+ 	case  IEEE802154_CONFIG_ENH_ACK_HEADER_IE : {
859+ 		uint8_t  short_addr_le [SHORT_ADDRESS_SIZE ];
860+ 		uint8_t  ext_addr_le [EXTENDED_ADDRESS_SIZE ];
861+ 
862+ 		/* We expect that addresses are in big endian format, but radio driver requires 
863+ 		 * to have them in little endian. Convert addresses to little endian. 
864+ 		 */ 
865+ 		sys_put_le16 (config -> ack_ie .short_addr , short_addr_le );
866+ 		sys_memcpy_swap (ext_addr_le , config -> ack_ie .ext_addr , EXTENDED_ADDRESS_SIZE );
867+ 
868+ 		if  (config -> ack_ie .data_len  >  0 ) {
869+ 			nrf_802154_ack_data_set (short_addr_le , false, config -> ack_ie .data ,
870+ 						config -> ack_ie .data_len , NRF_802154_ACK_DATA_IE );
871+ 			nrf_802154_ack_data_set (ext_addr_le , true, config -> ack_ie .data ,
872+ 						config -> ack_ie .data_len , NRF_802154_ACK_DATA_IE );
873+ 		} else  {
874+ 			nrf_802154_ack_data_clear (short_addr_le , false, NRF_802154_ACK_DATA_IE );
875+ 			nrf_802154_ack_data_clear (ext_addr_le , true, NRF_802154_ACK_DATA_IE );
876+ 		}
877+ 	} break ;
878+ 
858879	default :
859880		return  - EINVAL ;
860881	}
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments