netconsole: Enable compile time configuration

Enable netconsole features to be set at compilation time. Create two
Kconfig options that allow users to set extended logs and release
prepending features at compilation time.

Right now, the user needs to pass command line parameters to netconsole,
such as "+"/"r" to enable extended logs and version prepending features.

With these two options, the user could set the default values for the
features at compile time, and don't need to pass it in the command line
to get them enabled, simplifying the command line.

Signed-off-by: Breno Leitao <leitao@debian.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://lore.kernel.org/r/20230811093158.1678322-3-leitao@debian.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Breno Leitao 2023-08-11 02:31:58 -07:00 committed by Jakub Kicinski
parent b0a9e2c9a9
commit fad361a2ee
2 changed files with 27 additions and 0 deletions

View file

@ -332,6 +332,28 @@ config NETCONSOLE_DYNAMIC
at runtime through a userspace interface exported using configfs.
See <file:Documentation/networking/netconsole.rst> for details.
config NETCONSOLE_EXTENDED_LOG
bool "Set kernel extended message by default"
depends on NETCONSOLE
default n
help
Set extended log support for netconsole message. If this option is
set, log messages are transmitted with extended metadata header in a
format similar to /dev/kmsg. See
<file:Documentation/networking/netconsole.rst> for details.
config NETCONSOLE_PREPEND_RELEASE
bool "Prepend kernel release version in the message by default"
depends on NETCONSOLE_EXTENDED_LOG
default n
help
Set kernel release to be prepended to each netconsole message by
default. If this option is set, the kernel release is prepended into
the first field of every netconsole message, so, the netconsole
server/peer can easily identify what kernel release is logging each
message. See <file:Documentation/networking/netconsole.rst> for
details.
config NETPOLL
def_bool NETCONSOLE

View file

@ -178,6 +178,11 @@ static struct netconsole_target *alloc_and_init(void)
if (!nt)
return nt;
if (IS_ENABLED(CONFIG_NETCONSOLE_EXTENDED_LOG))
nt->extended = true;
if (IS_ENABLED(CONFIG_NETCONSOLE_PREPEND_RELEASE))
nt->release = true;
nt->np.name = "netconsole";
strscpy(nt->np.dev_name, "eth0", IFNAMSIZ);
nt->np.local_port = 6665;