Xiang Xiao
f337cc1380
sched/clock/ timekeeping: Use clock_basetime() to initialize g_clock_wall_time to get the best initial RTC value and initialize g_clock_last_counter too since the hardware may not start counting from zero.
2018-11-12 07:00:41 -06:00
Xiang Xiao
2bc709d4b9
sched/clock/clock_initialize.c: clock_inittime() needs to be done with CONFIG_SCHED_TICKLESS and clock_initialize should skip clock_inittime() for external RTC case since the RTC isn't ready yet.
2018-11-12 06:55:53 -06:00
Xiang Xiao
f0c5c75042
sched/clock/: Don't call up_timer_gettime in clock_gettime and clock_systimer to ensure the return value from them consistent with clock_systimespec
2018-11-12 06:52:56 -06:00
Xiang Xiao
46bd8798c5
ched/clock/: Remove g_monotonic_basetime and g_clock_monotonic_time since we don't need ensure monotonic time start from zero as state here: http://pubs.opengroup.org/onlinepubs/009696899/functions/clock_getres.html
2018-11-12 06:50:37 -06:00
Xiang Xiao
1ef2602933
sched/clock/clock_getres.c: Support CLOCK_MONOTONIC
2018-11-12 06:42:38 -06:00
Xiang Xiao
77098f8736
Move NETDEV_LATEINIT from drivers/net/Kconfig to net/Kconfig so that we can select NETDEV_LATEINIT without enabling NETDEVICES since the net driver in arch folder may need to initialize later too.
2018-11-12 06:36:26 -06:00
Gregory Nutt
d94bd49b78
net/mld: Fix a typo in conditional compilation. Clean up return values from mld_ngroups().
2018-11-11 16:23:18 -06:00
Gregory Nutt
9b1025ca1b
net/mld/mld_group.c: Fixed failure to stop queries. This turned out to be an uninitialized variable. I wonder why there was no warning from GCC?
2018-11-11 15:25:16 -06:00
Gregory Nutt
610c187e96
net/procfs/netdev_statistics.c: Eliminate warning: array subscript is above array bounds.
2018-11-11 14:28:15 -06:00
Xiang Xiao
543f4ed8ec
arch/ all assertion functions: up_assert move the register dump to first make the more important info first
2018-11-11 12:53:59 -06:00
Xiang Xiao
dfe788be25
arch/ all assertion functinos: up_stackdump dump the full stack if stack overflow the stack info is very useful to find the backtrace
2018-11-11 12:52:36 -06:00
Xiang Xiao
e4106a3744
arch/ assertions files: up_registerdump capture the general register if not yet saved and up_saveusercontext is implemented, the register dump is very useful to find the cause of failure.
2018-11-11 12:50:50 -06:00
Xiang Xiao
084904c40b
arch/arm/src: Remove general register dump from fault handler since the same info already dump in PANIC
2018-11-11 12:47:03 -06:00
Gregory Nutt
002f09f2da
net/mld: Fix logic error when testing for the case where all members have left. Still does not work. The end result is that the query timer no longer stops. Not when another another querier with a lower IP is present or when all of the members have left. Basically just can't stop querying under any condition.
2018-11-11 12:43:12 -06:00
Gregory Nutt
bfa8c362c6
net/devif/devif_loopback.c: Fix warning: implicit declaration of memcmp.
2018-11-11 11:56:37 -06:00
Gregory Nutt
8a3fc26b74
Squashed commit of the following:
...
The MLD implementation did not follow the RFC correctly when it is the Querier. The Querier should use a general query and get query messages from all members of all groups. This would be driven by a single timer per sub-nset since all groups are queried at once. Instead, the design used a Multicast Address Specific Query with one timer per group and ignores groups that we are not members of.
Similary, the MLDv1 compatibility timer should be a single, separate timer, not a per-group timer.
net/mld: Group may be NULL when sending a general query
2018-11-11 11:38:29 -06:00
Gregory Nutt
f14cf966c9
TODO: Minor clarification.
2018-11-11 08:03:45 -06:00
Gregory Nutt
591b03aa7d
net/mld/mld_query.c: Eliminate a warning: implicit definitino of memcmp.
2018-11-11 07:36:52 -06:00
Gregory Nutt
1a56229386
net/mld: Resolve and issue with sending reports from multiple groups in the same polling cycle.
2018-11-11 07:31:59 -06:00
Gregory Nutt
2b3ec4172d
arch/: Add 'BOARD_ASSERT_RESET_VALUE' in config/Kconfig and replace reboot status '0' to 'CONFIG_BOARD_ASSERT_RESET_VALUE'.
2018-11-10 14:06:46 -06:00
Xiang Xiao
e6ebbe875a
arch/arm/src/common/up_exit.c: Fix typo. Caused compiler error when system debug enabled.
2018-11-10 14:01:21 -06:00
Xiang Xiao
f71cd2678a
arch/sim/src/up_netdriver.c: Fix error 'invalid operands to binary &'
2018-11-10 14:00:13 -06:00
Gregory Nutt
8cfb376f81
net/mld: There is an issue with the general query timer design. There should be a single instance, not a per-group instance of the timer (ditto for the v1 compatibility timer). Fall back for now and use the per-group MAX query.
2018-11-10 12:13:54 -06:00
Gregory Nutt
f8d39e2c84
net/MLD: The MAS query should be sent on the group multicast address.
2018-11-10 11:41:50 -06:00
Gregory Nutt
854046a931
/net/devif/ipv6_input.c: Correct handling of IPv6 extension headers. The main confusion was that the payload length in the IPv6 header does not include its extension headers.
...
net/icmpv6/icmpv6_input.c: Correct caculation of the ICMPv6 header address
net/mld/mld_query.c: Correct back test for group found.
net/mld/mld_report.c: Fix host vs. network order problem.
net/mld/mld_send.c: Correct the address used in sending the General Query. It should be the unspecified address in that case.
net/mld: Querying workaround. The MLD implementation does not follow the RFC correct when it is the Querier. The Querier should use a general query and get query messages from all members of all groups. This would be driven by a single timer since all groups are queried at once. Instead, the design currently uses a Multicast Address Specific Query with one timer per group and ignores groups that we are not members of.
2018-11-10 11:29:02 -06:00
Gregory Nutt
b0ba5b69c4
net/udp/Kconfig: Auto-select CONFIG_WQUEUE_NOTIFIER when CONFIG_UDP_READAHEAD_NOTIFIER is selected.
2018-11-10 09:43:44 -06:00
ligd
e1622f60a6
drivers/power/pm: Use the start time of state btime) to calculate thrcnt; remove the loop whose count may be very big after the long idle
2018-11-10 07:30:23 -06:00
ligd
f4a3541d26
drivers/power/pm_initialize.c: Fix pm_domain_s.stime unint caused time error. Bug deatil:
...
1. open CONFIG_DEBUG_FEATURES CONFIG_SYSTEM_TIME64 CONFIG_CLOCK_MONOTONIC
==> INITIAL_SYSTEM_TIMER_TICKS very big data, not zero
2. close CONFIG_SCHED_TICKLESS
==> use g_system_timer as system clock
3. pm_domain_s.stime init to zero
4. clock_systimer() - pm_domain_s.stime get big data, error
2018-11-10 07:20:34 -06:00
Gregory Nutt
68a115aed9
net/icmpv6/icmpv6_autoconfig.c and icmpv6_rnotify.c: Don't take the network device down when reconfiguring only the IP address from within ICMPv6 logic. Recommended by Xiang Xiao in order to avoid the long delays of bringing some networks back up.
...
Normally it is required that the network be in the "down" state when re-configuring the network interface. This is thought not to be a necessary here because.
1. The ICMPv6 logic here runs with the network locked so there can be no outgoing packets with bad source IP addresses from any asynchronous network activity using the device being reconfigured.
2. Incoming packets depend only upon the MAC filtering. Network drivers do not use the IP address; they filter incoming packets using only the MAC address which is not being changed here.
2018-11-10 07:13:54 -06:00
Gregory Nutt
ae29df7445
net/devif/ipv6_input.c: Remove an old, outdated comment.
2018-11-09 17:53:31 -06:00
Xiang Xiao
f64741faca
drivers/timers/arch_rtc.c: up_rtc_set_lowerhalf call clock_synchronize() for external RTC.
2018-11-09 16:34:07 -06:00
Gregory Nutt
a583488829
net/devif/ipv6_input.c: Fix a logic error when the received IPv6 srcaddr is a multicast address. Exiting logic only supported UDP multicast. But MLD and certain other ICMPv6 packets also require acceptance of multicast packets.
2018-11-09 16:26:49 -06:00
Gregory Nutt
8527fcf4c5
net/icmpv6/icmpv6_input.c: Fix some ICMPv6 introduced with recent changes.
2018-11-09 16:10:19 -06:00
Xiang Xiao
71e1056e6d
net/icmpv6, neighbor, and netdev: Rename netdev_dev_lladdrsize() to netdev_lladdrsize() and move the prototype to include/nuttx/nex/netdev.h, giving is global scope within the OS. Reviewer: This degrades the integrity of the modular architecture by introducing a new coupling via C function call. Not a good thing at all.
2018-11-09 16:05:11 -06:00
Xiang Xiao
a139b7f9b1
net/arp and icmpv6: Double the delay time on each iteration for ARP/ICMP to fight work jitter better.
2018-11-09 15:55:38 -06:00
Xiang Xiao
4f25b83f8f
et/icmpv6: Remove the coupling between ICMPv6 and Ethernet by moving all Ethernet stuff to neighbor_ethernet_out.c and make the mac address as first field.
2018-11-09 15:41:23 -06:00
Xiang Xiao
a3cda3867b
net/icmpv6/icmpv6_linkipaddr.c: Encapsulate the link scope address generation into icmpv6_linkipaddr()
2018-11-09 15:28:58 -06:00
Xiang Xiao
52021a5300
net/icmpv6/icmpv6_conn.c: icmpv6_free() remove reference count operation since it's already done in icmpv6_close().
2018-11-09 15:22:25 -06:00
Xiang Xiao
688ccb156a
net/icmpv6/icmpv6_neighbor.c: icmpv6_neighbor shouldn't use the out of scope variable(dripaddr)
2018-11-09 15:18:17 -06:00
Gregory Nutt
915c2ecd4b
Documentation: Trivial update to the 'About NuttX' document.
2018-11-09 14:34:00 -06:00
Gregory Nutt
b93c3c13c4
net/: Fix some compile errors introduce with recent networking patches. Found in build testing.
2018-11-09 14:25:44 -06:00
Xiang Xiao
e294162697
net/neighbor: Support neighbor_out() for multiple link layer at the same time
2018-11-09 14:21:49 -06:00
Xiang Xiao
0a6e234962
net/neighbor: neighbor_lookup() checks if the target IP belongs to one of the local network devices.
2018-11-09 14:14:15 -06:00
Xiang Xiao
0a673d78dc
net/neighbor/neighbor_dumpentry.c: Simplify neighbor_dumpentry() implementation
2018-11-09 14:10:18 -06:00
Xiang Xiao
7f8496c643
net/neighbor: Simplify the neighbor table aging process
2018-11-09 14:08:18 -06:00
Xiang Xiao
eb31dc69ac
net/: Remove the unnecessary arp.h inclusion
2018-11-09 14:01:12 -06:00
Xiang Xiao
9711f6c668
Remove dup definition in nuttx/net/arp.h and include/nuttx/net/ioctl.h
2018-11-09 13:59:45 -06:00
Xiang Xiao
bdf93a8abf
net/arp/arp_send.c: Check ifname match before sending packet
2018-11-09 13:57:16 -06:00
Xiang Xiao
43706cd797
net/arp: Redesign ARP table aging to simplify the net initialization
2018-11-09 13:54:55 -06:00
Gregory Nutt
9d09b5aad7
Eliminate a warning found in build testing.
2018-11-09 13:23:12 -06:00