You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by we...@apache.org on 2017/04/20 05:06:13 UTC
[1/2] incubator-mynewt-core git commit: MYNEWT-736 NimBLE - UART
xport can't send multibuf
Repository: incubator-mynewt-core
Updated Branches:
refs/heads/master fd7bf2bf5 -> 431e500ad
MYNEWT-736 NimBLE - UART xport can't send multibuf
The UART transport assumes outgoing ACL data packets consist of a single
mbuf. If the chain contains multiple buffers, the later part of the
outgoing packet consists of all zeros.
Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/7669e971
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/7669e971
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/7669e971
Branch: refs/heads/master
Commit: 7669e9715e9eee5cccea0074208e6915258d3d3a
Parents: fd7bf2b
Author: Christopher Collins <cc...@apache.org>
Authored: Wed Apr 19 20:13:59 2017 -0700
Committer: Christopher Collins <cc...@apache.org>
Committed: Wed Apr 19 20:13:59 2017 -0700
----------------------------------------------------------------------
net/nimble/transport/uart/src/ble_hci_uart.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/7669e971/net/nimble/transport/uart/src/ble_hci_uart.c
----------------------------------------------------------------------
diff --git a/net/nimble/transport/uart/src/ble_hci_uart.c b/net/nimble/transport/uart/src/ble_hci_uart.c
index 6584112..9de4ad7 100755
--- a/net/nimble/transport/uart/src/ble_hci_uart.c
+++ b/net/nimble/transport/uart/src/ble_hci_uart.c
@@ -275,6 +275,7 @@ ble_hci_uart_tx_pkt_type(void)
static int
ble_hci_uart_tx_char(void *arg)
{
+ uint8_t u8;
int rc = -1;
switch (ble_hci_uart_state.tx_type) {
@@ -293,12 +294,19 @@ ble_hci_uart_tx_char(void *arg)
break;
case BLE_HCI_UART_H4_ACL:
- rc = *OS_MBUF_DATA(ble_hci_uart_state.tx_acl, uint8_t *);
+ /* Copy the first unsent byte from the tx buffer and remove it from the
+ * source.
+ */
+ os_mbuf_copydata(ble_hci_uart_state.tx_acl, 0, 1, &u8);
os_mbuf_adj(ble_hci_uart_state.tx_acl, 1);
- if (!OS_MBUF_PKTLEN(ble_hci_uart_state.tx_acl)) {
+
+ /* Free the tx buffer if this is the last byte to send. */
+ if (OS_MBUF_PKTLEN(ble_hci_uart_state.tx_acl) == 0) {
os_mbuf_free_chain(ble_hci_uart_state.tx_acl);
ble_hci_uart_state.tx_type = BLE_HCI_UART_H4_NONE;
}
+
+ rc = u8;
break;
}
[2/2] incubator-mynewt-core git commit: This closes #241
Posted by we...@apache.org.
This closes #241
The UART transport assumes outgoing ACL data packets consist of a single
mbuf. If the chain contains multiple buffers, the later part of the
outgoing packet consists of all zeros.
Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/431e500a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/431e500a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/431e500a
Branch: refs/heads/master
Commit: 431e500adc76efe84d336da9e278b8bb480cc5bb
Parents: 813463e 7669e97
Author: William San Filippo <wi...@runtime.io>
Authored: Wed Apr 19 22:05:05 2017 -0700
Committer: William San Filippo <wi...@runtime.io>
Committed: Wed Apr 19 22:05:05 2017 -0700
----------------------------------------------------------------------
apps/iptest/pkg.yml | 46 +
apps/iptest/src/main.c | 441 ++++++
apps/iptest/syscfg.yml | 45 +
fs/fcb/src/fcb.c | 2 +-
fs/fcb/test/src/testcases/fcb_test_len.c | 5 +-
hw/bsp/nrf52840pdk/src/hal_bsp.c | 86 ++
hw/bsp/nrf52dk/src/hal_bsp.c | 14 +-
.../include/bsp/stm32f4xx_hal_conf.h | 1 +
hw/bsp/olimex_stm32-e407_devboard/pkg.yml | 4 +-
hw/bsp/olimex_stm32-e407_devboard/src/hal_bsp.c | 41 +-
hw/bsp/olimex_stm32-e407_devboard/syscfg.yml | 4 +
hw/bsp/ruuvi_tag_revb2/boot-nrf52xxaa.ld | 25 +
hw/bsp/ruuvi_tag_revb2/bsp.yml | 64 +
hw/bsp/ruuvi_tag_revb2/include/bsp/boards.h | 19 +
hw/bsp/ruuvi_tag_revb2/include/bsp/bsp.h | 73 +
hw/bsp/ruuvi_tag_revb2/include/bsp/cmsis_nvic.h | 29 +
hw/bsp/ruuvi_tag_revb2/nrf52dk_debug.cmd | 22 +
hw/bsp/ruuvi_tag_revb2/nrf52dk_debug.sh | 46 +
hw/bsp/ruuvi_tag_revb2/nrf52dk_download.cmd | 22 +
hw/bsp/ruuvi_tag_revb2/nrf52dk_download.sh | 40 +
hw/bsp/ruuvi_tag_revb2/nrf52dk_no_boot.ld | 191 +++
hw/bsp/ruuvi_tag_revb2/nrf52xxaa.ld | 25 +
hw/bsp/ruuvi_tag_revb2/pkg.yml | 97 ++
hw/bsp/ruuvi_tag_revb2/split-nrf52dk.ld | 208 +++
.../src/arch/cortex_m4/gcc_startup_nrf52.s | 301 ++++
.../arch/cortex_m4/gcc_startup_nrf52_split.s | 166 +++
hw/bsp/ruuvi_tag_revb2/src/hal_bsp.c | 303 ++++
hw/bsp/ruuvi_tag_revb2/src/sbrk.c | 59 +
hw/bsp/ruuvi_tag_revb2/syscfg.yml | 95 ++
hw/bsp/stm32f767-nucleo/pkg.yml | 3 +
hw/bsp/stm32f767-nucleo/src/hal_bsp.c | 50 +
hw/bsp/stm32f767-nucleo/syscfg.yml | 4 +
.../stm32_eth/include/stm32_eth/stm32_eth.h | 49 +
.../stm32_eth/include/stm32_eth/stm32_eth_cfg.h | 47 +
hw/drivers/lwip/stm32_eth/pkg.yml | 41 +
hw/drivers/lwip/stm32_eth/src/stm32_eth.c | 538 +++++++
.../include/stm32f4_eth/stm32f4_eth.h | 27 -
.../include/stm32f4_eth/stm32f4_eth_cfg.h | 32 -
hw/drivers/lwip/stm32f4_eth/pkg.yml | 33 -
hw/drivers/lwip/stm32f4_eth/src/stm32f4_eth.c | 746 ----------
hw/hal/include/hal/hal_timer.h | 2 +
hw/mcu/nordic/nrf52xxx/src/hal_flash.c | 12 +
hw/mcu/stm/stm32f4xx/syscfg.yml | 4 +
hw/mcu/stm/stm32f7xx/syscfg.yml | 4 +
libc/baselibc/include/string.h | 1 +
libc/baselibc/src/strstr.c | 5 +
libc/baselibc/src/tinyprintf.c | 20 +-
net/ip/include/arch/sys_arch.h | 304 ++--
net/ip/include/ip/init.h | 32 -
net/ip/include/lwipopts.h | 15 +-
net/ip/inet_def_service/src/inet_def_service.c | 110 +-
net/ip/lwip_base/CHANGELOG | 146 ++
net/ip/lwip_base/UPGRADING | 16 +-
net/ip/lwip_base/doc/NO_SYS_SampleCode.c | 16 +-
net/ip/lwip_base/doc/doxygen/generate.sh | 2 +
net/ip/lwip_base/doc/doxygen/lwip.Doxyfile | 7 +-
net/ip/lwip_base/doc/doxygen/main_page.h | 75 +-
net/ip/lwip_base/doc/mqtt_client.txt | 162 +++
net/ip/lwip_base/doc/ppp.txt | 6 +-
net/ip/lwip_base/doc/rawapi.txt | 8 +-
net/ip/lwip_base/doc/sys_arch.txt | 2 +-
net/ip/lwip_base/include/lwip/api.h | 31 +-
net/ip/lwip_base/include/lwip/apps/httpd_opts.h | 30 -
net/ip/lwip_base/include/lwip/apps/mdns.h | 10 +-
net/ip/lwip_base/include/lwip/apps/mdns_opts.h | 10 +-
net/ip/lwip_base/include/lwip/apps/mdns_priv.h | 10 +-
net/ip/lwip_base/include/lwip/apps/mqtt.h | 244 ++++
net/ip/lwip_base/include/lwip/apps/mqtt_opts.h | 103 ++
net/ip/lwip_base/include/lwip/apps/netbiosns.h | 8 -
.../include/lwip/apps/netbiosns_opts.h | 18 -
net/ip/lwip_base/include/lwip/apps/snmp_opts.h | 8 -
net/ip/lwip_base/include/lwip/apps/snmpv3.h | 8 -
net/ip/lwip_base/include/lwip/apps/sntp_opts.h | 8 -
net/ip/lwip_base/include/lwip/apps/tftp_opts.h | 105 ++
.../lwip_base/include/lwip/apps/tftp_server.h | 94 ++
net/ip/lwip_base/include/lwip/arch.h | 299 ++--
net/ip/lwip_base/include/lwip/autoip.h | 2 +
net/ip/lwip_base/include/lwip/debug.h | 81 +-
net/ip/lwip_base/include/lwip/def.h | 95 +-
net/ip/lwip_base/include/lwip/dhcp.h | 2 +
net/ip/lwip_base/include/lwip/dhcp6.h | 8 -
net/ip/lwip_base/include/lwip/dns.h | 18 +-
net/ip/lwip_base/include/lwip/err.h | 4 +
net/ip/lwip_base/include/lwip/errno.h | 193 +++
net/ip/lwip_base/include/lwip/icmp.h | 2 +-
net/ip/lwip_base/include/lwip/icmp6.h | 89 +-
net/ip/lwip_base/include/lwip/igmp.h | 6 +-
net/ip/lwip_base/include/lwip/inet.h | 8 +-
net/ip/lwip_base/include/lwip/inet_chksum.h | 8 +-
net/ip/lwip_base/include/lwip/init.h | 4 +-
net/ip/lwip_base/include/lwip/ip4_addr.h | 36 +-
net/ip/lwip_base/include/lwip/ip6_addr.h | 66 +-
net/ip/lwip_base/include/lwip/ip_addr.h | 73 +-
net/ip/lwip_base/include/lwip/mem.h | 3 +-
net/ip/lwip_base/include/lwip/mld6.h | 7 +-
net/ip/lwip_base/include/lwip/nd6.h | 93 +-
net/ip/lwip_base/include/lwip/netdb.h | 3 +-
net/ip/lwip_base/include/lwip/netif.h | 10 +-
net/ip/lwip_base/include/lwip/netifapi.h | 12 +-
net/ip/lwip_base/include/lwip/opt.h | 116 +-
net/ip/lwip_base/include/lwip/pbuf.h | 20 +-
net/ip/lwip_base/include/lwip/priv/api_msg.h | 3 +-
net/ip/lwip_base/include/lwip/priv/memp_std.h | 8 -
net/ip/lwip_base/include/lwip/priv/nd6_priv.h | 144 ++
net/ip/lwip_base/include/lwip/priv/tcp_priv.h | 27 +-
net/ip/lwip_base/include/lwip/priv/tcpip_priv.h | 4 +-
net/ip/lwip_base/include/lwip/prot/dns.h | 18 +
net/ip/lwip_base/include/lwip/prot/ethernet.h | 2 +-
net/ip/lwip_base/include/lwip/prot/icmp6.h | 87 ++
net/ip/lwip_base/include/lwip/prot/ip.h | 8 -
net/ip/lwip_base/include/lwip/prot/ip4.h | 16 +
net/ip/lwip_base/include/lwip/prot/ip6.h | 27 +-
net/ip/lwip_base/include/lwip/prot/mld6.h | 2 +-
net/ip/lwip_base/include/lwip/prot/nd6.h | 24 +
net/ip/lwip_base/include/lwip/prot/tcp.h | 14 +-
net/ip/lwip_base/include/lwip/raw.h | 2 +
net/ip/lwip_base/include/lwip/sockets.h | 5 +-
net/ip/lwip_base/include/lwip/stats.h | 4 +-
net/ip/lwip_base/include/lwip/sys.h | 44 +-
net/ip/lwip_base/include/lwip/tcp.h | 12 +-
net/ip/lwip_base/include/lwip/tcpip.h | 2 +
net/ip/lwip_base/include/lwip/timeouts.h | 2 +-
net/ip/lwip_base/include/netif/lowpan6_opts.h | 8 -
net/ip/lwip_base/include/netif/ppp/ccp.h | 8 -
net/ip/lwip_base/include/netif/ppp/chap-new.h | 8 -
net/ip/lwip_base/include/netif/ppp/chap_ms.h | 8 -
net/ip/lwip_base/include/netif/ppp/eui64.h | 10 +-
net/ip/lwip_base/include/netif/ppp/fsm.h | 8 -
net/ip/lwip_base/include/netif/ppp/ipcp.h | 8 -
net/ip/lwip_base/include/netif/ppp/ipv6cp.h | 8 -
net/ip/lwip_base/include/netif/ppp/lcp.h | 8 -
net/ip/lwip_base/include/netif/ppp/magic.h | 8 -
net/ip/lwip_base/include/netif/ppp/mppe.h | 10 +-
net/ip/lwip_base/include/netif/ppp/ppp.h | 12 +-
net/ip/lwip_base/include/netif/ppp/ppp_impl.h | 12 +-
net/ip/lwip_base/include/netif/ppp/ppp_opts.h | 8 -
net/ip/lwip_base/include/netif/ppp/pppcrypt.h | 8 -
net/ip/lwip_base/include/netif/ppp/pppdebug.h | 8 -
net/ip/lwip_base/include/netif/ppp/pppoe.h | 8 -
net/ip/lwip_base/include/netif/ppp/pppol2tp.h | 8 -
net/ip/lwip_base/include/netif/ppp/pppos.h | 8 -
net/ip/lwip_base/include/netif/ppp/upap.h | 8 -
net/ip/lwip_base/include/netif/ppp/vj.h | 8 -
net/ip/lwip_base/include/posix/errno.h | 33 +
net/ip/lwip_base/src/Filelists.mk | 10 +-
net/ip/lwip_base/src/api/api_lib.c | 69 +-
net/ip/lwip_base/src/api/api_msg.c | 127 +-
net/ip/lwip_base/src/api/err.c | 40 +
net/ip/lwip_base/src/api/netdb.c | 10 +-
net/ip/lwip_base/src/api/netifapi.c | 14 +-
net/ip/lwip_base/src/api/sockets.c | 204 +--
net/ip/lwip_base/src/api/tcpip.c | 3 +-
net/ip/lwip_base/src/apps/httpd/fsdata.h | 8 -
net/ip/lwip_base/src/apps/httpd/httpd.c | 180 +--
net/ip/lwip_base/src/apps/httpd/httpd_structs.h | 8 -
net/ip/lwip_base/src/apps/lwiperf/lwiperf.c | 16 +-
net/ip/lwip_base/src/apps/mdns/mdns.c | 161 +--
net/ip/lwip_base/src/apps/mqtt/mqtt.c | 1341 ++++++++++++++++++
net/ip/lwip_base/src/apps/netbiosns/netbiosns.c | 5 +-
net/ip/lwip_base/src/apps/snmp/snmp_asn1.c | 8 +-
net/ip/lwip_base/src/apps/snmp/snmp_core.c | 84 +-
net/ip/lwip_base/src/apps/snmp/snmp_mib2_ip.c | 12 +-
net/ip/lwip_base/src/apps/snmp/snmp_mib2_tcp.c | 6 +-
net/ip/lwip_base/src/apps/snmp/snmp_msg.c | 11 +-
net/ip/lwip_base/src/apps/snmp/snmp_netconn.c | 5 +-
net/ip/lwip_base/src/apps/snmp/snmp_raw.c | 2 +-
.../lwip_base/src/apps/snmp/snmp_threadsync.c | 1 +
net/ip/lwip_base/src/apps/snmp/snmp_traps.c | 9 +-
net/ip/lwip_base/src/apps/snmp/snmpv3_priv.h | 8 -
net/ip/lwip_base/src/apps/sntp/sntp.c | 9 +-
net/ip/lwip_base/src/apps/tftp/tftp_server.c | 417 ++++++
net/ip/lwip_base/src/core/def.c | 177 ++-
net/ip/lwip_base/src/core/dns.c | 239 +++-
net/ip/lwip_base/src/core/inet_chksum.c | 15 +-
net/ip/lwip_base/src/core/init.c | 12 +-
net/ip/lwip_base/src/core/ipv4/autoip.c | 16 +-
net/ip/lwip_base/src/core/ipv4/dhcp.c | 114 +-
net/ip/lwip_base/src/core/ipv4/etharp.c | 69 +-
net/ip/lwip_base/src/core/ipv4/icmp.c | 14 +-
net/ip/lwip_base/src/core/ipv4/igmp.c | 75 +-
net/ip/lwip_base/src/core/ipv4/ip4.c | 57 +-
net/ip/lwip_base/src/core/ipv4/ip4_addr.c | 10 +-
net/ip/lwip_base/src/core/ipv4/ip4_frag.c | 88 +-
net/ip/lwip_base/src/core/ipv6/ethip6.c | 42 +-
net/ip/lwip_base/src/core/ipv6/ip6.c | 62 +-
net/ip/lwip_base/src/core/ipv6/ip6_addr.c | 10 +-
net/ip/lwip_base/src/core/ipv6/ip6_frag.c | 49 +-
net/ip/lwip_base/src/core/ipv6/mld6.c | 7 +-
net/ip/lwip_base/src/core/ipv6/nd6.c | 355 +++--
net/ip/lwip_base/src/core/mem.c | 8 +-
net/ip/lwip_base/src/core/memp.c | 25 +-
net/ip/lwip_base/src/core/netif.c | 127 +-
net/ip/lwip_base/src/core/pbuf.c | 91 +-
net/ip/lwip_base/src/core/raw.c | 51 +-
net/ip/lwip_base/src/core/stats.c | 6 +-
net/ip/lwip_base/src/core/sys.c | 38 +
net/ip/lwip_base/src/core/tcp.c | 149 +-
net/ip/lwip_base/src/core/tcp_in.c | 88 +-
net/ip/lwip_base/src/core/tcp_out.c | 195 ++-
net/ip/lwip_base/src/core/timeouts.c | 4 +-
net/ip/lwip_base/src/core/udp.c | 72 +-
net/ip/lwip_base/src/netif/ethernet.c | 20 +-
net/ip/lwip_base/src/netif/lowpan6.c | 103 +-
net/ip/lwip_base/src/netif/ppp/auth.c | 10 +-
net/ip/lwip_base/src/netif/ppp/ipcp.c | 120 +-
net/ip/lwip_base/src/netif/ppp/ipv6cp.c | 4 +-
net/ip/lwip_base/src/netif/ppp/multilink.c | 4 +-
net/ip/lwip_base/src/netif/ppp/ppp.c | 19 +-
net/ip/lwip_base/src/netif/ppp/pppapi.c | 5 +
net/ip/lwip_base/src/netif/ppp/pppoe.c | 19 +-
net/ip/lwip_base/src/netif/ppp/pppol2tp.c | 9 +-
net/ip/lwip_base/src/netif/ppp/pppos.c | 40 +-
net/ip/lwip_base/src/netif/ppp/utils.c | 4 +-
net/ip/lwip_base/src/netif/ppp/vj.c | 62 +-
net/ip/lwip_base/src/netif/slipif.c | 2 +-
net/ip/lwip_base/test/fuzz/Makefile | 53 +
net/ip/lwip_base/test/fuzz/README | 34 +
net/ip/lwip_base/test/fuzz/config.h | 0
net/ip/lwip_base/test/fuzz/fuzz.c | 136 ++
.../lwip_base/test/fuzz/inputs/arp/arp_req.bin | Bin 0 -> 42 bytes
.../test/fuzz/inputs/icmp/icmp_ping.bin | Bin 0 -> 98 bytes
.../fuzz/inputs/ipv6/neighbor_solicitation.bin | Bin 0 -> 86 bytes
.../test/fuzz/inputs/ipv6/router_adv.bin | Bin 0 -> 118 bytes
.../lwip_base/test/fuzz/inputs/tcp/tcp_syn.bin | Bin 0 -> 74 bytes
.../test/fuzz/inputs/udp/udp_port_5000.bin | Bin 0 -> 50 bytes
net/ip/lwip_base/test/fuzz/lwipopts.h | 68 +
net/ip/lwip_base/test/fuzz/output_to_pcap.sh | 31 +
net/ip/lwip_base/test/unit/core/test_mem.h | 8 -
net/ip/lwip_base/test/unit/core/test_pbuf.h | 8 -
net/ip/lwip_base/test/unit/dhcp/test_dhcp.c | 113 +-
net/ip/lwip_base/test/unit/dhcp/test_dhcp.h | 8 -
net/ip/lwip_base/test/unit/etharp/test_etharp.h | 8 -
net/ip/lwip_base/test/unit/lwip_check.h | 8 -
net/ip/lwip_base/test/unit/lwipopts.h | 8 -
net/ip/lwip_base/test/unit/mdns/test_mdns.c | 71 +-
net/ip/lwip_base/test/unit/mdns/test_mdns.h | 8 -
net/ip/lwip_base/test/unit/tcp/tcp_helper.c | 23 +-
net/ip/lwip_base/test/unit/tcp/tcp_helper.h | 8 -
net/ip/lwip_base/test/unit/tcp/test_tcp.c | 18 +-
net/ip/lwip_base/test/unit/tcp/test_tcp.h | 8 -
net/ip/lwip_base/test/unit/tcp/test_tcp_oos.h | 8 -
net/ip/lwip_base/test/unit/udp/test_udp.h | 8 -
net/ip/mn_socket/include/mn_socket/mn_socket.h | 7 +
net/ip/mn_socket/src/mn_socket.c | 16 +
net/ip/native_sockets/src/native_itf.c | 5 +-
net/ip/pkg.yml | 7 +
net/ip/src/ip_init.c | 5 +
net/ip/src/ip_priv.h | 3 +
net/ip/src/lwip_cli.c | 140 ++
net/ip/src/lwip_if.c | 17 +-
net/ip/src/lwip_socket.c | 179 ++-
net/ip/syscfg.yml | 26 +
net/nimble/host/src/ble_att_clt.c | 2 +-
net/nimble/host/test/src/ble_gatt_disc_s_test.c | 2 +
net/nimble/host/test/src/ble_hs_test_util.c | 35 +
net/nimble/host/test/src/ble_hs_test_util.h | 6 +
net/nimble/transport/uart/src/ble_hci_uart.c | 12 +-
sys/console/full/include/console/console.h | 2 +-
sys/console/full/src/cons_fmt.c | 40 +-
sys/console/minimal/include/console/console.h | 5 +-
sys/console/stub/include/console/console.h | 5 +-
261 files changed, 10406 insertions(+), 3803 deletions(-)
----------------------------------------------------------------------