From 6dd84c9e86e65fcc26289938794ee71477c8c16b Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Mon, 16 Aug 2021 01:53:26 +0900 Subject: [PATCH] network: can: add missing control modes --- man/systemd.network.xml | 30 +++++++++++++++++++ src/network/networkd-network-gperf.gperf | 4 +++ .../fuzz-network-parser/directives.network | 4 +++ 3 files changed, 38 insertions(+) diff --git a/man/systemd.network.xml b/man/systemd.network.xml index 299c56df0a..c5c2e48ac7 100644 --- a/man/systemd.network.xml +++ b/man/systemd.network.xml @@ -3027,6 +3027,36 @@ IPv6Token=prefixstable:2002:da8:1:: + + Loopback= + + Takes a boolean. When yes, loopback mode is enabled. When the + loopback mode is enabled, the interface treats messages transmitted by itself as received + messages. The loopback mode is important to debug CAN networks. When unset, the kernel's + default will be used. + + + + OneShot= + + Takes a boolean. When yes, one-shot mode is enabled. When unset, + the kernel's default will be used. + + + + PresumeAck= + + Takes a boolean. When yes, the interface will ignore missing CAN + ACKs. When unset, the kernel's default will be used. + + + + ClassicDataLengthCode= + + Takes a boolean. When yes, the interface will handle the 4bit data + length code (DLC). When unset, the kernel's default will be used. + + diff --git a/src/network/networkd-network-gperf.gperf b/src/network/networkd-network-gperf.gperf index 9ba910f903..489d048056 100644 --- a/src/network/networkd-network-gperf.gperf +++ b/src/network/networkd-network-gperf.gperf @@ -349,11 +349,15 @@ CAN.SamplePoint, config_parse_permille, CAN.DataBitRate, config_parse_can_bitrate, 0, offsetof(Network, can_data_bitrate) CAN.DataSamplePoint, config_parse_permille, 0, offsetof(Network, can_data_sample_point) CAN.RestartSec, config_parse_can_restart_usec, 0, offsetof(Network, can_restart_us) +CAN.Loopback, config_parse_can_control_mode, CAN_CTRLMODE_LOOPBACK, 0 CAN.ListenOnly, config_parse_can_control_mode, CAN_CTRLMODE_LISTENONLY, 0 CAN.TripleSampling, config_parse_can_control_mode, CAN_CTRLMODE_3_SAMPLES, 0 +CAN.OneShot, config_parse_can_control_mode, CAN_CTRLMODE_ONE_SHOT, 0 CAN.BusErrorReporting, config_parse_can_control_mode, CAN_CTRLMODE_BERR_REPORTING, 0 CAN.FDMode, config_parse_can_control_mode, CAN_CTRLMODE_FD, 0 +CAN.PresumeACK, config_parse_can_control_mode, CAN_CTRLMODE_PRESUME_ACK, 0 CAN.FDNonISO, config_parse_can_control_mode, CAN_CTRLMODE_FD_NON_ISO, 0 +CAN.ClassicDataLengthCode, config_parse_can_control_mode, CAN_CTRLMODE_CC_LEN8_DLC, 0 CAN.Termination, config_parse_tristate, 0, offsetof(Network, can_termination) QDisc.Parent, config_parse_qdisc_parent, _QDISC_KIND_INVALID, 0 QDisc.Handle, config_parse_qdisc_handle, _QDISC_KIND_INVALID, 0 diff --git a/test/fuzz/fuzz-network-parser/directives.network b/test/fuzz/fuzz-network-parser/directives.network index 2dca1cda3a..2f96bb8db9 100644 --- a/test/fuzz/fuzz-network-parser/directives.network +++ b/test/fuzz/fuzz-network-parser/directives.network @@ -266,6 +266,10 @@ TripleSampling= BusErrorReporting= Termination= ListenOnly= +Loopback= +OneShot= +PresumeACK= +ClassicDataLengthCode= [Address] DuplicateAddressDetection= AutoJoin= -- 2.25.1