No description
Find a file
Fabio M. Di Nitto e4ff45846e
Merge pull request #492 from Jessie-xxj/feat/addthreadnames
handle.c:Add unique names to handle threads
2026-06-24 07:28:57 +02:00
build-aux update copyright to 2026 2026-01-13 12:19:21 +01:00
libknet handle.c:Add unique names to handle threads 2026-06-24 11:08:11 +08:00
libnozzle nozzle: Introduce test macros similar to libknet 2026-06-12 07:08:48 +01:00
m4 update copyright to 2026 2026-01-13 12:19:21 +01:00
man Add API to enumerate supported cipher modes and hash algorithms 2026-05-15 15:49:15 +02:00
.gitarchivever Support for git archive stored tags 2018-09-04 18:09:24 +02:00
.gitattributes Support for git archive stored tags 2018-09-04 18:09:24 +02:00
.gitignore build: add .claude to .gitignore 2026-05-15 09:22:12 +02:00
autogen.sh update copyright to 2026 2026-01-13 12:19:21 +01:00
CLAUDE.md libknet: use SOCK_DGRAM for internal socketpairs 2026-06-03 15:29:32 +02:00
configure.ac handle.c:Add unique names to handle threads 2026-06-24 11:08:11 +08:00
COPYING.applications Add licence/copyright 2010-08-26 09:44:52 +02:00
COPYING.libraries Add licence/copyright 2010-08-26 09:44:52 +02:00
COPYRIGHT update copyright to 2026 2026-01-13 12:19:21 +01:00
kronosnet.spec.in Wireshark dissector for kronosnet 2026-01-22 15:49:22 +01:00
Makefile.am Wireshark dissector for kronosnet 2026-01-22 15:49:22 +01:00
NOTES_TO_PACKAGE_MAINTAINERS update copyright to 2026 2026-01-13 12:19:21 +01:00
README libknet: use SOCK_DGRAM for internal socketpairs 2026-06-03 15:29:32 +02:00
README.licence Add licence/copyright 2010-08-26 09:44:52 +02:00
STYLE_GUIDE.md update copyright to 2026 2026-01-13 12:19:21 +01:00

#
# Copyright (C) 2010-2026 Red Hat, Inc.  All rights reserved.
#
# Author: Fabio M. Di Nitto <fabbione@kronosnet.org>
#
# This software licensed under GPL-2.0+
#

Upstream resources
------------------

https://github.com/kronosnet/kronosnet/
https://ci.kronosnet.org/
https://projects.clusterlabs.org/project/board/86/ (TODO list and activities tracking)
https://drive.google.com/drive/folders/0B_zxAPgZTkM_TklfYzN6a2FYUFE?resourcekey=0-Cfr5D94rZ8LVbeMPGjxbdg&usp=sharing (google shared drive)
https://lists.kronosnet.org/mailman3/postorius/lists/users.lists.kronosnet.org/
https://lists.kronosnet.org/mailman3/postorius/lists/devel.lists.kronosnet.org/
https://lists.kronosnet.org/mailman3/postorius/lists/commits.lists.kronosnet.org/
https://kronosnet.org/ (web 0.1 style)
IRC: #kronosnet on Libera.Chat

Architecture
------------

Please refer to the google shared drive Presentations directory for
diagrams and fancy schemas

Dependancies
------------
kronosnet has few obligatory dependancies, though it is strongly recommended
that you build it with at least one crypto library enabled.

It does, however, require libqb for both the doxygen2man tool (for creating
the API man pages) and headers for list manipulation.
You can get these from installing libqb from source or libqb-devel package, and
your distro might provide doxgen2man as its own package.

Running on FreeBSD
-----------------------

knet requires big socket buffers and you need to set:
kern.ipc.maxsockbuf=18388608
net.local.dgram.maxdgram=131072
in /etc/sysctl.conf or knet will fail to run.

libnozzle requires if_tap.ko loaded in the kernel.

Please avoid using ifconfig_DEFAULT in /etc/rc.conf to use
DHCP for all interfaces or the dhclient will interfere with
libnozzle interface management, causing errors on some
operations such as "ifconfig tap down".

Building on Solaris / Illumos
-----------------------------

tested on SunOS openindiana-x86-64 5.11 illumos-5b6ecd7fe9:

# pkg install autoconf automake libtool pkg-config \
      gcc-14 gnu-binutils gnu-coreutils gnu-make \
      check system/mozilla-nss doxygen \
      header-tun tun

optional:

# pkg install developer/clang-20

GNU tools must be preferred:

# export PATH=/usr/gnu/bin:$PATH

mozilla-nss is currently broken in oi-userland and does not ship pkg-config files

# ./autogen.sh && ./configure --disable-crypto-nss

# make all -j && make check

Running on Solaris / Illumos
----------------------------

Tune socket buffers for the protocol you intend to use:

ipadm set-prop -p max_buf=8388608 udp

For KNET_DATAFD_FLAG_RX_RETURN_INFO support (datagrams >64KB), add to /etc/system and reboot:

set strmsgsz=131072

This increases the TL (loopback transport) TIDU size for Unix domain sockets

Rust Bindings
-------------

Rust bindings for libknet and libnozzle are part of this
source tree, but are included here mainly to keep all of the
kronosnet APIs in one place and to ensure that everything is kept
up-to-date and properly tested in our CI system.

The correct place to get the Rust crates for libknet and libnozzle
is still crates.io as it would be for other crates. These will be
updated when we issue a new release of knet.

https://crates.io/crates/knet-bindings
https://crates.io/crates/nozzle-bindings

Of course, if you want to try any new features in the APIs that
may have not yet been released then you can try these sources, but
please keep in touch with us via email or IRC if you do so.