This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Transmission Parameters

Hello

I would like to modify my Transmission Parameters of my Thread network. According to the CoAP protocol (https://tools.ietf.org/html/rfc7252#section-4.8), it is possible to modify the Transmission Parameters (ACK_TIMEOUT, ACK_RANDOM_FACTOR, MAX_RETRANSMIT, ...): how could I modify these values in the "thread" examples for example?

Thank you

Parents
  • Hi QuentinD,

    According to Zephyr CoAP protocol latest implantation coap.c:

    /* TODO: random generated initial ACK timeout
     * ACK_TIMEOUT < INIT_ACK_TIMEOUT < ACK_TIMEOUT * ACK_RANDOM_FACTOR
     * where ACK_TIMEOUT = 2 and ACK_RANDOM_FACTOR = 1.5 by default
     * Ref: https://tools.ietf.org/html/rfc7252#section-4.8
     */
    #define INIT_ACK_TIMEOUT	CONFIG_COAP_INIT_ACK_TIMEOUT_MS
    
    static int32_t next_timeout(int32_t previous)
    {
    	switch (previous) {
    	case INIT_ACK_TIMEOUT:
    	case (INIT_ACK_TIMEOUT * 2):
    	case (INIT_ACK_TIMEOUT * 4):
    		return previous << 1;
    	case (INIT_ACK_TIMEOUT * 8):
    		/* equal value is returned to end retransmit */
    		return previous;
    	}
    
    	/* initial or unrecognized */
    	return INIT_ACK_TIMEOUT;
    }

    The features to configure CoAP connection with ACK_RANDOM_FACTOR, MAX_RETRANSMIT has not been implemented. 

Reply
  • Hi QuentinD,

    According to Zephyr CoAP protocol latest implantation coap.c:

    /* TODO: random generated initial ACK timeout
     * ACK_TIMEOUT < INIT_ACK_TIMEOUT < ACK_TIMEOUT * ACK_RANDOM_FACTOR
     * where ACK_TIMEOUT = 2 and ACK_RANDOM_FACTOR = 1.5 by default
     * Ref: https://tools.ietf.org/html/rfc7252#section-4.8
     */
    #define INIT_ACK_TIMEOUT	CONFIG_COAP_INIT_ACK_TIMEOUT_MS
    
    static int32_t next_timeout(int32_t previous)
    {
    	switch (previous) {
    	case INIT_ACK_TIMEOUT:
    	case (INIT_ACK_TIMEOUT * 2):
    	case (INIT_ACK_TIMEOUT * 4):
    		return previous << 1;
    	case (INIT_ACK_TIMEOUT * 8):
    		/* equal value is returned to end retransmit */
    		return previous;
    	}
    
    	/* initial or unrecognized */
    	return INIT_ACK_TIMEOUT;
    }

    The features to configure CoAP connection with ACK_RANDOM_FACTOR, MAX_RETRANSMIT has not been implemented. 

Children
No Data
Related