- 28 May, 2022 1 commit
-
-
Samuel Thibault authored
ncsi: Add Mellanox Get MAC Address handler See merge request !125
-
- 19 May, 2022 6 commits
-
-
Peter Delevoryas authored
Attempted to mirror the upstream Linux driver[1] as closely as reasonably possible. [1] https://github.com/torvalds/linux/blob/42226c989789d8da4af1de0c31070c96726d990c/net/ncsi/ncsi-rsp.c#L614-L638 Signed-off-by:
Peter Delevoryas <pdel@fb.com>
-
Peter Delevoryas authored
If a network card supports NC-SI, then it redirects all traffic with the out-of-band (OOB) management controller's (MC) ethernet address to the out-of-band management controller, usually over some sideband RMII interface, not like the PCIe connection to the main host. It's also pretty common for the network card to provision the out-of-band management controller's ethernet address. At startup, the OOB MC asks the network card what its MAC address is through OEM NC-SI commands. This protocol is so common that it's going to be standardized soon in NC-SI 1.2.0 [1] as "Get MC MAC Address". Note: At some point, the network card may provision *multiple* OOB ethernet addresses, but right now everything just uses one. [1] https://www.dmtf.org/sites/default/files/standards/documents/DSP0222_1.2.0WIP80.pdf Signed-off-by:
Peter Delevoryas <pdel@fb.com>
-
Peter Delevoryas authored
This commit just sets up the OEM command handler to respond with "unsupported" for now, as verified in the test. Signed-off-by:
Peter Delevoryas <pdel@fb.com>
-
Peter Delevoryas authored
Signed-off-by:
Peter Delevoryas <pdel@fb.com>
-
Peter Delevoryas authored
In the Linux NC-SI driver[1], each response's length is validated with a statically declared payload length, _unless_ it's an OEM command or some more complicated NC-SI packet that you can't determine the length of just from the "type" field, in which case it just uses the length provided by the response's header. To support OEM response handlers without requiring too many modifications we can make the default payload length use the value specified in the handler table, and then allow OEM handlers to override the length by modifying the "length" in the response header within the handler implementation. [1] https://github.com/torvalds/linux/blob/ec7f49619d8ee13e108740c82f942cd401b989e9/net/ncsi/ncsi-rsp.c#L1215-L1220 Signed-off-by:
Peter Delevoryas <pdel@fb.com>
-
Peter Delevoryas authored
This change passes the command header as an additional read-only parameter to each response handler so that they can make more response handling descisions based on the command header fields. This is especially useful for handling OEM NC-SI commands, or any protocol that's encapsulated in an NC-SI header. Signed-off-by:
Peter Delevoryas <pdel@fb.com>
-
- 16 May, 2022 1 commit
-
-
Windows Vista is not supported by its vendor anymore. Additionally, glib uses 0x0601 as setting for _WIN32_WINNT since version 2.53.6 already, so unless libslirp is used with a very old version of glib, we are depending on Windows 7 anyway. Signed-off-by:
Thomas Huth <thuth@redhat.com> Reviewed-by:
Samuel Thibault <samuel.thibault@ens-lyon.org> Message-Id: <20220516090410.39727-1-thuth@redhat.com>
-
- 11 May, 2022 4 commits
-
-
Samuel Thibault authored
ncsi: Add basic Get Version ID response See merge request !122
-
Peter Delevoryas authored
Get Version ID is one of the first commands used in NC-SI, because BMC's use a lot of OEM NC-SI extensions, and you need to query the device's manufacturer through Get Version ID before you can decide which OEM NC-SI extensions to use. The response format is documented in the NC-SI spec[1]. We're just setting the NC-SI version supported to 1.0.0 (BCD-encoded[2]) and returning the manufacturer's ID in network byte-order. [1] https://www.dmtf.org/sites/default/files/standards/documents/DSP0222_1.0.0.pdf [2] https://en.wikipedia.org/wiki/Binary-coded_decimal Signed-off-by:
Peter Delevoryas <pdel@fb.com>
-
Peter Delevoryas authored
This will let us use Slirp fields to generate more interesting NC-SI responses. Signed-off-by:
Peter Delevoryas <pdel@fb.com>
-
Peter Delevoryas authored
The manufacturer's ID is used in NC-SI commands such as "Get Version ID" [1]. It is also essential to providing a path towards adding OEM (non-standardized) NC-SI commands. This field should be derived from the IANA Private Enterprise Numbers list, per the NC-SI specification. It may be useful for things besides NC-SI, but NC-SI responses for BMC's in QEMU are the main use case I have in mind. Note: I did not add this attribute to slirp_init, since it is deprecated. [1] https://www.dmtf.org/sites/default/files/standards/documents/DSP0222_1.0.0.pdf [2] https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers Signed-off-by:
Peter Delevoryas <pdel@fb.com>
-
- 08 May, 2022 2 commits
-
-
Samuel Thibault authored
Add support for Haiku to meson.build See merge request !123
-
Ivan Holmes authored
-
- 04 May, 2022 3 commits
-
-
Samuel Thibault authored
win32: declare some local functions as static See merge request !121
-
Paolo Bonzini authored
Enable extra warnings based no what QEMU uses. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
These functions do not have a prototype and are not meant to be public. Declare them as static. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
- 02 May, 2022 1 commit
-
-
Samuel Thibault authored
Include <sys/socket.h> and <arpa/inet.h> for AF_INET6 and inet_pton Closes #58 See merge request !120
-
- 01 May, 2022 1 commit
-
-
Samuel Thibault authored
Fixes #58
-
- 27 Apr, 2022 1 commit
-
-
Marc-André Lureau authored
Release v4.7.0 See merge request !119
-
- 26 Apr, 2022 1 commit
-
-
Marc-André Lureau authored
Signed-off-by:
Marc-André Lureau <marcandre.lureau@redhat.com>
-
- 25 Apr, 2022 1 commit
-
-
Marc-André Lureau authored
Support for CFI See merge request !117
-
- 11 Apr, 2022 2 commits
-
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
The introduction of .timer_new_opaque adds an interesting conundrum. The Slirp* needs to be stored in .timer_new_opaque so that it can be passed back to slirp_handle_timer, but it is not returned by slirp_new and slirp_init until after the first call to .timer_new_opaque (which is in ip6_init). This is a problem for programs that, like QEMU, use more than one Slirp*. Fix them by passing the Slirp* to a callback before slirp_new returns, and initializing the timer afterwards. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
- 10 Apr, 2022 4 commits
-
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Add a new callback that supports CFI better by avoiding having function pointers in the external libslirp API. Instead, the new API passes an opaque integer and requests the application to call a new libslirp function when the timer expires. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
In order to support CFI, we would like to avoid passing function pointers out of libslirp, and instead use opaque integers for the timer callbacks. This patch introduces an internal API for creating a timer that is based on such a timer callback. For now, it receives the id (SLIRP_TIMER_RA is the only one) and calls slirp->cb->timer_new. The prototype of ra_timer_handler is changed slightly to fit better with the next patch which introduces a new libslirp function, to be called on timer expiration. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
- 20 Mar, 2022 1 commit
-
-
Samuel Thibault authored
-
- 04 Mar, 2022 2 commits
-
-
Samuel Thibault authored
Handle ECONNABORTED from recv See merge request !116
-
Rich authored
recv can return ECONNABORTED due to a time-out on the socket. The socket is no longer useable once it enters this state.
-
- 17 Feb, 2022 2 commits
-
-
Samuel Thibault authored
bootp: fix g_str_has_prefix warning/critical See merge request !115
-
Marc-André Lureau authored
Fixes: commit 60535013 ("bootp: add support for UEFI HTTP boot") Signed-off-by:
Marc-André Lureau <marcandre.lureau@redhat.com>
-
- 11 Feb, 2022 1 commit
-
-
When debug is enabled, we duplicate the packet in tcp_reass, but ti is still pointing to the old buffer, resulting in a use after free. This makes valgrind debugging a little trickier, but makes it crash a lot less. Signed-off-by:
Brett Nash <nash@fb.com>
-
- 10 Feb, 2022 3 commits
-
-
Avoid a macro translation when not needed, and potentially doing really weird things to headers.
-
Marc-André Lureau authored
mbuf: Use SLIRP_DEBUG to enable mbuf debugging instead of DEBUG See merge request !114
-
Brett Nash authored
DEBUG is set by a number of IDEs and development environments (*cough* xcode *cough*). This means we use mbuf duplication when we don't need (or expect) it. Change the name to SLIRP_DEBUG to enable this feature. Signed-off-by:
Pablo Fiori <pablofiori@fb.com> Signed-off-by: Brett Nash <nash@fb.com>
-
- 09 Feb, 2022 1 commit
-
-
Marc-André Lureau authored
inet_ntoa() returns a static pointer which is subject to safety issues. Use the recommended alternative. Signed-off-by:
Marc-André Lureau <marcandre.lureau@redhat.com>
-
- 02 Feb, 2022 2 commits
-
-
Samuel Thibault authored
Add VMS_END marker See merge request !112
-
Dr. David Alan Gilbert authored
The migration VMSTATE_END_OF_LIST marker relies on a NULL field to mark th eend of a list; that's a bit delicate when the marker is forgotten and the code hits a NULL by luck. Use an explicit flag to mark the end as well. See: https://lists.gnu.org/archive/html/qemu-devel/2022-01/msg03025.html Signed-off-by:
Dr. David Alan Gilbert <dgilbert@redhat.com>
-