Ninjatrappeur's systemd working tree
Go to file
Lennart Poettering 34437b4f9c sd-lldp: rework sd-lldp API
This reworks the sd-lldp substantially, simplifying things on one hand, and
extending the logic a bit on the other.

Specifically:

- Besides the sd_lldp object only one other object is maintained now,
  sd_lldp_neighbor. It's used both as storage for literal LLDP packets, and for
  maintainging info about peers in the database. Separation between packet, TLV
  and chassis data is not maintained anymore. This should be a major
  simplification.

- The sd-lldp API has been extended so that a couple of per-neighbor fields may
  be queried directly, without iterating through the object. Other fields that
  may appear multiple times, OTOH have to be iterated through.

- The maximum number of entries in the neighbor database is now configurable
  during runtime.

- The generation of callbacks from sd_lldp objects is more restricted:
  callbacks are only invoked when actual data changed.

- The TTL information is now hooked with a timer event, so that removals from
  the neighbor database due to TTLs now result in a callback event.

- Querying LLDP neighbor database will now return a strictly ordered array, to
  guarantee stability.

- A "capabilities" mask may now be configured, that selects what type of LLDP
  neighbor data is collected. This may be used to restrict collection of LLDP
  info about routers instead of all neighbors. This is now exposed via
  networkd's LLDP= setting.

- sd-lldp's API to serialize the collected data to text files has been removed.
  Instead, there's now an API to extract the raw binary data from LLDP neighbor
  objects, as well as one to convert this raw binary data back to an LLDP
  neighbor object. networkd will save this raw binary data to /run now, and the
  client side can simply parse the information.

- support for parsing the more exotic TLVs has been removed, since we are not
  using that. Instead there are now APIs to extract the raw data from TLVs.
  Given how easy it is to parse the TLVs clients should do so now directly
  instead of relying on our APIs for that.

- A lot of the APIs that parse out LLDP strings have been simplified so that
  they actually return strings, instead of char arrays with a length. To deal
  with possibly dangerous characters the strings are escaped if needed.

- APIs to extract and format the chassis and port IDs as strings has been
  added.

- lldp.h has been simplified a lot. The enums are anonymous now, since they
  were never used as enums, but simply as constants. Most definitions we don't
  actually use ourselves have eben removed.
2016-02-21 20:40:56 +01:00
catalog editors: only extend line width to 119 for C and XML files 2016-02-10 12:29:32 +01:00
coccinelle tree-wide: use xsprintf() where applicable 2016-01-12 15:36:32 +01:00
docs docs: add .gitignore 2015-07-06 17:47:38 +02:00
factory/etc factory: remove broken pam_limits 2014-07-30 15:21:54 +02:00
hwdb build-sys: run "make hwdb-update" 2016-02-11 13:11:02 +01:00
m4 build-sys: Perform flag tests in context to existing flags 2016-02-06 14:57:46 +01:00
man sd-lldp: rework sd-lldp API 2016-02-21 20:40:56 +01:00
network networkd: emit DNS/NTP/Timezone info via DHCP server by default 2015-08-27 16:47:26 +02:00
po Update zh_TW translation. 2016-02-12 11:52:02 +08:00
rules rfkill: rework and make it listen on /dev/rfkill 2015-10-01 16:21:09 +02:00
shell-completion systemd-resolve: initial shell completion 2016-02-18 11:50:53 -05:00
src sd-lldp: rework sd-lldp API 2016-02-21 20:40:56 +01:00
sysctl.d coredump: honour RLIMIT_CORE when saving/processing coredumps 2016-02-10 16:08:32 +01:00
system-preset preset: enable machines.target by default 2014-12-29 17:36:57 +01:00
sysusers.d remove bus-proxyd 2016-02-12 19:10:01 +01:00
test tests: add test for https://github.com/systemd/systemd/issues/2637 2016-02-17 22:40:26 +00:00
tmpfiles.d build-sys: allow references to wheel group to be omitted 2016-02-17 23:47:23 -05:00
tools man: include the target name when linking to man pages in html output 2015-11-22 23:54:29 -05:00
units remove bus-proxyd 2016-02-12 19:10:01 +01:00
xorg login: support user-bus on dbus1 2015-08-31 18:12:37 +02:00
.dir-locals.el editors: only extend line width to 119 for C and XML files 2016-02-10 12:29:32 +01:00
.editorconfig editors: only extend line width to 119 for C and XML files 2016-02-10 12:29:32 +01:00
.gitattributes git: indicate that tabs are never OK in the systemd tree 2013-10-30 02:25:38 +01:00
.gitignore Merge pull request #2618 from zonque/busproxy-removal 2016-02-15 14:54:09 +01:00
.mailmap NEWS: add more stuff, and reorder things a bit 2015-11-13 13:59:50 +01:00
.travis.yml remove gudev and gtk-doc 2015-06-03 00:22:53 +02:00
.vimrc editors: only extend line width to 119 for C and XML files 2016-02-10 12:29:32 +01:00
.ycm_extra_conf.py ycm: update flag blacklist 2014-06-04 15:41:10 -04:00
autogen.sh build-sys: drop libsystemd-{id128,daemon,login,journal}.so compat libs 2016-02-13 11:57:14 +01:00
CODING_STYLE CODING_STYLE: make sure line break recommendation matches edit configuration 2016-01-25 17:19:19 +01:00
configure.ac Merge pull request #2621 from keszybz/wheel-group 2016-02-18 19:20:14 +01:00
CONTRIBUTING.md CONTRIBUTING.md: Minor typo fix 2016-01-27 16:53:11 +01:00
DISTRO_PORTING build-sys: warn if people don't change the default NTP servers when building systemd 2015-07-11 14:24:29 -03:00
LICENSE.GPL2
LICENSE.LGPL2.1
Makefile-man.am Merge pull request #2618 from zonque/busproxy-removal 2016-02-15 14:54:09 +01:00
Makefile.am sd-lldp: rework sd-lldp API 2016-02-21 20:40:56 +01:00
NEWS resolved: turn on DNSSEC by default, unless configured otherwise 2016-02-16 15:22:05 +01:00
README remove bus-proxyd 2016-02-12 19:10:01 +01:00
README.md github: extend README.md a bit 2016-01-25 17:19:19 +01:00
TODO Merge pull request #2618 from zonque/busproxy-removal 2016-02-15 14:54:09 +01:00

systemd - System and Service Manager

Build Status
Coverity Scan Status

Details

General information about systemd can be found in the systemd Wiki.

Information about build requirements are provided in the README file.

Consult our NEWS file for information about what's new in the most recent systemd versions.

Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.

When preparing patches for systemd, please follow our Coding Style Guidelines.

If you are looking for support, please contact our mailing list or join our IRC channel.