Cannot send ACK from GW to endpoint when working as packet forwarder

Home Forums Conduit: mLinux Model Cannot send ACK from GW to endpoint when working as packet forwarder

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #17929
    Kamil Gardziejczyk
    Participant

    Hi,

    In one of our projects we want to use Conduit as pocket forwarder for our custom LoRa server. Currently we are able to pass packet from end-device to server through GW, send ACK from server to GW. The problem is with ACK packet that needs to be sent from GW to end-point. We see on spectum analyzer that packet is not sent.

    – Currently we operate only on one channel – 868.300 MHz (for upstream and downstream messages).
    – Server is configured to not send PULL_ACKs to GW.

    Packet forwarder configuration:

    {
    	"SX1301_conf": {
    		"radio_0": {
    			"enable": true,
    			"freq": 867500000
    		},
    		"radio_1": {
    			"enable": true,
    			"freq": 868500000
    		},
    		"chan_multiSF_0": {
    			"enable": true,
    			"radio": 1,
    			"if": -400000
    		},
    		"chan_multiSF_1": {
    			"enable": true,
    			"radio": 1,
    			"if": -200000
    		},
    		"chan_multiSF_2": {
    			"enable": true,
    			"radio": 1,
    			"if": 0
    		},
    		"chan_multiSF_3": {
    			"enable": true,
    			"radio": 0,
    			"if": -400000
    		},
    		"chan_multiSF_4": {
    			"enable": true,
    			"radio": 0,
    			"if": -200000
    		},
    		"chan_multiSF_5": {
    			"enable": true,
    			"radio": 0,
    			"if": 0
    		},
    		"chan_multiSF_6": {
    			"enable": true,
    			"radio": 0,
    			"if": 200000
    		},
    		"chan_multiSF_7": {
    			"enable": true,
    			"radio": 0,
    			"if": 400000
    		},
    		"chan_Lora_std": {
    			"enable": true,
    			"radio": 1,
    			"if": -200000,
    			"bandwidth": 250000,
    			"spread_factor": 7
    		},
    		"chan_FSK": {
    			"enable": true,
    			"radio": 1,
    			"if": 300000,
    			"datarate": 50000,
    			"freq_deviation": 25000
    		}
    	},
    	"gateway_conf": {
    		"synch_word": 52,
    		"forward_crc_disabled": false,
    		"forward_crc_error": false,
    		"forward_crc_valid": true,
    		"gateway_ID" : "00:80:00:00:00:00:bf:a3",
    		"keepalive_interval": 12,
    		"push_timeout_ms": 120,
    		"serv_port_down": 1682,
    		"serv_port_up": 1680,
    		"server_address": "our.network.server.com",
    		"stat_interval": 20
    	}
    }

    Example of sent packet to server and ACK received from server but not forwarded to endpoint. Data is captured using tcpdump on Conduit:

    Send:

    18:05:17.872973 IP 192.168.0.18.34330 > server.1680: UDP, length 308
    E..P0.@.@.......4.>......<.u............{"rxpk":[{"tmst":1860875828,"time":"2017-03-20T17:05:17.872406Z","chan":1,"  rfch":1,"freq":868.300000,"stat":1,"modu":"LORA","datr":"SF12BW125","codr":"4/5","lsnr":8.5,"rssi":-33,"size":72,"d  ata":"gAEjAhSAAgABLMCae8tpgKwL+O9jeYTGJh2lfcxy+tiefr9FC+eHgLCSzeivfgpOjJ0ruIPUMxrmhDuyJ+uNE4JtsNPvhMag"}]}
    

    ACK:

    18:05:17.943083 IP server.37179 > 192.168.0.18.1682: UDP, length 190
    E.....@.-.L.4.>......;..........{"txpk":{"tmst":1861876068,"chan":1,"rfch":0,"freq":868.300000,"imme":0,"ipol":true,"modu":"LORA","powe":14,"datr":"SF12BW125","codr":"4/5","size":18,"data":"YAEjAhSligEDUj8AAQFONH6Z"}}.

    Logs for this packet:

    ##### 2017-03-20 18:05:21 GMT #####
    ### [UPSTREAM] ###
    # RF packets received by concentrator: 1
    # CRC_OK: 100.00%, CRC_FAIL: 0.00%, NO_CRC: 0.00%
    # RF packets forwarded: 1 (72 bytes)
    # PUSH_DATA datagrams sent: 1 (308 bytes)
    # PUSH_DATA acknowledged: 0.00%
    ### [DOWNSTREAM] ###
    # PULL_DATA sent: 2 (0.00% acknowledged)
    # PULL_RESP(onse) datagrams received: 0 (0 bytes)
    # RF packets sent to concentrator: 0 (0 bytes)
    # TX errors: 0
    ##### END #####

    Conduit FW version: 1.3.3

    admin@mtcdt:~# cat /etc/mlinux-version
    mLinux 3.2.0
    Built from branch: (detachedfrom7745024)
    Revision: 7745024bea525004d22c4a83761916b1315bedcc

    admin@mtcdt:~# tail -100 /var/log/lora-pkt-fwd-1.log
    Version: 1.4.1
    *** Lora concentrator HAL library version info ***
    Version: 1.7.0; Options: ftdi sx1301 sx1257 full mtac-lora private;
    ***

    Did we miss some configuration that determines how downstream packet is forwarded to end-point?

    #17938
    Jason Reiss
    Keymaster

    I would expect a pull response from the network server to be logged.

    
    # PULL_DATA sent: 2 (0.00% acknowledged)
    # PULL_RESP(onse) datagrams received: 0 (0 bytes)
    # RF packets sent to concentrator: 0 (0 bytes)
    

    Check that you are following the packet forwarder downlink protocol correctly.
    https://github.com/Lora-net/packet_forwarder/blob/master/PROTOCOL.TXT

    Output from successful TX

    
    ##### 2019-01-13 04:58:21 GMT #####
    ### [UPSTREAM] ###
    # RF packets received by concentrator: 1
    # CRC_OK: 100.00%, CRC_FAIL: 0.00%, NO_CRC: 0.00%
    # RF packets forwarded: 1 (23 bytes)
    # PUSH_DATA datagrams sent: 1 (204 bytes)
    # PUSH_DATA acknowledged: 0.00%
    ### [DOWNSTREAM] ###
    # PULL_DATA sent: 2 (100.00% acknowledged)
    # PULL_RESP(onse) datagrams received: 1 (259 bytes)
    # RF packets sent to concentrator: 1 (17 bytes)
    # TX errors: 0
    ##### END #####
    
    #18004
    Kamil Gardziejczyk
    Participant

    Hi,
    Yes. That was the root cause. Now it works.
    Thanks!

Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.