# llmnrd - Link-Local Multicast Resolution Daemon [![Build Status](https://travis-ci.org/tklauser/llmnrd.svg?branch=master)](https://travis-ci.org/tklauser/llmnrd) [![Coverity Status](https://scan.coverity.com/projects/8697/badge.svg)](https://scan.coverity.com/projects/tklauser-llmnrd) llmnrd is a daemon implementing the Link-Local Multicast Name Resolution (LLMNR) protocol according to [RFC 4795](https://tools.ietf.org/html/rfc4795). It currently only supports Linux, as it uses the [netlink kernel interface](http://man7.org/linux/man-pages/man7/netlink.7.html). llmnrd will respond to name resolution queries sent by Windows clients in networks where no DNS server is available. It supports both IPv4 and IPv6. Installation ============ To build and install llmnrd use the following commands: ``` $ make $ sudo make install ``` By default, the llmnrd binary will be installed to /usr/local/sbin. To install the binary to a different installation path, use: ``` $ make $ sudo make prefix= install ``` Cross-Compilation ================= To cross-compile llmnrd for a different architecture, use the `CROSS_COMPILE` make variable. To e.g. build it using the arm-linux-gnueabihf toolchain use: ``` $ make CROSS_COMPILE=arm-linux-gnueabihf- ``` When cross-compiling, you usually don't want to install the generated binary to your root filesystem, but to the sysroot of a cross-compiled system. Use the `DESTDIR` variable to change the installation destination path, e.g. ``` $ make DESTDIR=$HOME/sysroot/ prefix=/usr install ``` Usage ===== To run llmnrd in the default mode (listening on UDP port 5355): ``` $ llmnrd ``` By default, LLMNR name resolution is only possible over IPv4. To additionally enable LLMNR name resolution over IPv6 use: ``` $ llmnrd -6 ``` Use `llmnrd --help` to show additional usage information. Additionally, the `llmnr-query` utility is shipped together with llmnrd and can be used to send customized LLMNR queries: ``` $ llmnr-query ``` Use `llmnr-query --help` to show additional usage information. License ======= llmnrd is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. llmnrd is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Please see the [COPYING](https://github.com/tklauser/llmnrd/blob/master/COPYING) file for the full license text. Contributors ============ llmnrd is authored and maintained by Tobias Klauser The following people contributed patches and ideas, found and reported bugs or otherwise helped in the development of llmnrd: * Elazar Leibovich (@elazarl) * Martin Hauke * Michael Evertz (@dvl-mevertz) * Pali Rohár * @Schimmelreiter * @svimik * @tbetker Thanks a lot! References ========== * [RFC 4795](https://tools.ietf.org/html/rfc4795) * [Microsoft TechNet article about LLMNR](https://technet.microsoft.com/en-us/library/bb878128.aspx) * [xllmnrd: An IPv6-only LLMNR responder daemon](http://www.vx68k.org/xllmnrd) ([Repository](https://bitbucket.org/kazssym/xllmnrd/)) e='40'>40space:mode:
authorJacob Keller <jacob.e.keller@intel.com>2016-12-07 14:05:34 -0800
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2017-02-02 22:36:38 -0800
commitf94484b7584765eebded5d7bfdeb0b2c7b1caf51 (patch)
tree2e0a03f3a6b1f150aafaec2ccad8d38109a54f2b
parent8fe809a992639b2013c0d8da2ba55cdea28a959a (diff)
i40e: don't allow i40e_vsi_(add|kill)_vlan to operate when VID<1
Now that we have the separate i40e_(add|rm)_vlan_all_mac functions, we should not be using the i40e_vsi_kill_vlan or i40e_vsi_add_vlan functions when PVID is set or when VID is less than 1. This allows us to remove some checks in i40e_vsi_add_vlan and ensures that callers which need to handle VID=0 or VID=-1 don't accidentally invoke the VLAN mode handling used to convert filters when entering VLAN mode. We also update the functions to take u16 instead of s16 as well since they no longer expect to be called with VID=I40E_VLAN_ANY. Change-ID: Ibddf44a8bb840dde8ceef2a4fdb92fd953b05a57 Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>