zephyr/include
Marcin Niestroj 5326d11e8c net: l2: ppp: add generalized "my options" negotiation
So far there was no generalized way how to handle negotiation of "my
options" (those sent with Conf-Req packet to peer). Peer response for
proposed options and their values were not tracked in any way, so
rejected (by peer) options were sent over and over again in subsequent
Conf-Req packets. In case of IPCP it means that all sent options such as
IP_ADDRESS, DNS1, DNS2 were mandatory for being supported by peer in
order to successfully finish negotiation. For example if 'pppd' was the
configured peer (e.g. when using with QEMU and net-tools scripts),
without ms-dns being configured (which is the default), then "my
options" negotiation failed.

Introduce generalized mechanism for negotiating "my options", so it is
easier to maintain current set of supported options and easily add new
options to the implementation in future. FSM instance inititialization
function can provide information about supported "my options".
Information is is passed as a table of 'struct ppp_my_option_info'
containing:

 * option code (type),
 * callback for adding option to Conf-Req packet,
 * callback for received Conf-Ack with that option,
 * callback for received Conf-Nak with that option.

Store also runtime information about each negotiated option. First of
all remember which options have been rejected, so they are not sent to
peer once again in the next Conf-Req packet. This will solve issue with
IPCP negotiation when peer doesn't support DNS1 or DNS2 options. Keep
also track about which options have been acked, so such information can
be verified before bringing FSM instance up.

Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>
2020-07-29 16:38:37 +02:00
..
app_memory userspace: mark z_app_regions as const 2020-07-20 13:47:10 +02:00
arch ARC: replace NOP ASM inlines with builtin 2020-07-24 12:05:12 +02:00
audio doc: group audio header using doxygen 2020-07-28 08:14:23 -05:00
bluetooth Bluetooth: Mesh: Document shell commands 2020-07-20 12:47:31 +02:00
canbus
cmsis_rtos_v1
cmsis_rtos_v2
console
crypto
data json: Add top-level array encoding support 2020-06-19 18:21:27 +02:00
debug
devicetree
dfu
disk
display
drivers dma: Support 64bit source/dest address 2020-07-24 11:54:31 +02:00
dt-bindings dts: bindings: Add bindings for Semtech SX126x 2020-07-02 08:32:37 -04:00
fs subsys/fs/nvs: Move write_block_size to flash_parameters 2020-06-22 14:35:03 +02:00
linker net: Use section foreach macros 2020-07-20 08:32:46 -07:00
logging logging: Add fields initialization in z_log_msg_std_alloc 2020-07-09 13:46:07 +02:00
mgmt mgmt: smp: add missing kernel.h include statement 2020-07-18 08:43:18 -04:00
net net: l2: ppp: add generalized "my options" negotiation 2020-07-29 16:38:37 +02:00
posix lib: posix: nanosleep 2020-06-12 17:02:03 +02:00
power
random random: Add syscalls for random subsystem 2020-07-08 21:05:36 -04:00
settings settings: disallow modifying the content of a static subtree name 2020-07-27 19:03:44 +02:00
shell tests: shell: shell_flash: Add a test for 'flash read' 2020-07-07 17:19:26 -04:00
stats
storage includes/storage/stream_flash: clarification on API usage 2020-06-13 11:57:35 +02:00
sys include: libc-hooks: add comments 2020-07-23 11:01:42 +02:00
toolchain linker: add iterable section macros 2020-06-24 17:09:22 -04:00
tracing
usb
zephyr
cache.h include: Implement API's for cache flush and cache invalidate 2020-07-15 15:53:26 -07:00
device.h kernel: add macros for device MMIO management 2020-07-17 11:38:18 +02:00
devicetree.h
exc_handle.h
fatal.h
generated_dts_board.h
init.h device: Fix structure documentation 2020-06-23 18:57:23 -04:00
irq_nextlevel.h
irq_offload.h
irq.h
kernel_includes.h random: Include header where it is used 2020-07-08 21:05:36 -04:00
kernel_structs.h kernel/timeout: Fix 32 bit rollover conditions 2020-06-18 13:21:06 +02:00
kernel_version.h
kernel.h doc: fix usage of :c:type 2020-07-16 15:44:50 -04:00
mempool_heap.h sys_heap: reduce the size of struct z_heap_bucket by half 2020-06-21 19:25:35 +02:00
mempool_sys.h
ptp_clock.h
sched_priq.h
shared_irq.h
spinlock.h
sw_isr_table.h
sys_clock.h api: Fix narrowing conversion C++ compilation warning in Z_TIMEOUT_TICKS 2020-06-30 12:21:41 -05:00
syscall_handler.h
syscall.h
timeout_q.h
toolchain.h
wait_q.h
zephyr.h