Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make IPSet actually support IPs, and fix protocol errors for newer kernels #617

Merged
merged 1 commit into from
Mar 27, 2021

Conversation

eh-steve
Copy link

@eh-steve eh-steve commented Mar 8, 2021

Fixes #609

Added support for IPSets based on IP rather than just MAC address.

With the release of IPSet v7, the protocol response for PROTOCOL_MIN is now potentially more relevant, so the IpsetProtocol() function has been updated to return this too.

I'd like to improve the protocol testing of all functions this area to ensure protocol parity with the userland ipset binary at some point (I built a debug version of http://git.netfilter.org/ipset/ using -DIPSET_DEBUG and this patch:

Index: lib/debug.c
===================================================================
diff --git a/lib/debug.c b/lib/debug.c
--- a/lib/debug.c	(revision 258b4c0e7fc5e3365a113d6d80c7d6770e55cc4a)
+++ b/lib/debug.c	(date 1614930673366)
@@ -292,6 +292,12 @@
 			;
 		}
 		cmd = ipset_get_nlmsg_type(nlh);
+                fprintf(stderr, "Message payload: \n");
+                for (int i = 0; i < len; i++) {
+                  fprintf(stderr, "%02X", ((uint8_t*)buffer)[i]);
+                }
+
+                fprintf(stderr, "\n");
 		fprintf(stderr, "Message header: %s cmd  %s (%d)\n"
 				"\tlen %d\n"
 				"\tflag %s\n"

which prints out the serialised payloads being sent, but this package will need some refactoring to make the request generation independent of the request execution - I might put that into a separate PR

ipset_linux.go Outdated Show resolved Hide resolved
@eh-steve
Copy link
Author

eh-steve commented Mar 10, 2021

@aboch @corny @vishvananda

I'd be happy to address any comments you might have

https://travis-ci.org/github/vishvananda/netlink/builds/761936947

@aboch
Copy link
Collaborator

aboch commented Mar 27, 2021

LGTM

@aboch aboch merged commit 3b8f3fd into vishvananda:master Mar 27, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ipset create failed. panic: invalid family
3 participants