rem: mtu_len += encode_unsigned16(&mtu[mtu_len], pdu_len);
add: mtu_len += encode_unsigned16(&mtu[mtu_len], pdu_len + 4 );
context: static int bip_send(  struct sockaddr_in *bip_dest,  uint8_t *pdu, // any data to be sent - may be null  unsigned pdu_len) // number of bytes of data{    uint8_t mtu[MAX_MPDU] = { 0 };    int mtu_len = 0;    int bytes_sent = 0;        // assumes that the driver has already been initialized    if (BIP_Socket < 0)        return BIP_Socket;    mtu[0] = 0x81; /* BVLL for BACnet/IP */    if (bip_dest->sin_addr.s_addr == BIP_Broadcast_Address.s_addr)        mtu[1] = 0x0B; /* Original-Broadcast-NPDU */    else        mtu[1] = 0x0A; /* Original-Unicast-NPDU */    mtu_len = 2;    mtu_len += encode_unsigned16(&mtu[mtu_len], pdu_len);    memcpy(&mtu[mtu_len], pdu, pdu_len);    mtu_len += pdu_len;        /* Send the packet */    bytes_sent = sendto(BIP_Socket, (char *)mtu, mtu_len, 0,         (struct sockaddr *)bip_dest,         sizeof(struct sockaddr));    return bytes_sent;}