[ANN] Multi-Level namespaces
Multi-level namespaces were just merged into the master branch. If you're building from master and using nested attributes, structures, or vendor specific attributes, this will effect the way you reference those attributes. This work removes the dictionary specific namespace attributes were inserted into and uses attribute specific namespaces. These attribute specific namespaces contain the direct decedents of a given VSA, TLV, or Vendor attribute. Example: # Previous referencing scheme if (&Cisco-AvPair) # New referencing scheme if (&Vendor-Specific.Cisco.AvPair) - Vendor-Specific (Attribute 26, VSA) is located in the top level namespace for the RADIUS dictionary. - Cisco (PEN 9, Vendor) is located in the Vendor-Specific namespace. - AvPair (Attribute 1, string) is located in the Cisco namespace. We will likely be adding aliases for the vendors so that they're accessible from the root, and for some common nested attributes to make the new syntax less unwieldily, but in all cases the way vendor attributes and TLVs are referenced will change. The primary reason for the new name-spacing scheme was that grouped attributes require both the group attribute and its child attribute to be specified. In many cases the parent and child had a lengthy prefix to uniquely identify them in the global namespace, combining these attributes in a reference string lead to obscenely large references which were very hard to follow. DHCPv4 is the next protocol to be reworked for these changes. Expect to see the "DHCP-" prefix removed from the DHCPv4 dictionaries in the next couple of weeks. If you want to add your own aliases before the official ones are added, the syntax is: ALIAS <name> <OID> It will need to be used inside a BEGIN-PROTOCOL block if you're making the changes in raddb/dictionary. -Arran Arran Cudbard-Bell <a.cudbardb@freeradius.org> FreeRADIUS Development Team FD31 3077 42EC 7FCD 32FE 5EE2 56CF 27F9 30A8 CAA2
On Nov 26, 2020, at 1:16 PM, Arran Cudbard-Bell <a.cudbardb@freeradius.org> wrote:
Multi-level namespaces were just merged into the master branch. If you're building from master and using nested attributes, structures, or vendor specific attributes, this will effect the way you reference those attributes.
This is a _very_ large change for v4. It means that instead of names like Foo-Bar-Baz = 3 we can do Foo.Bar.Baz = 3 This change was necessary in order to support the new features we're adding for v4. So the downside is that v4 is becoming less compatible with v3. But the good news is that it's rather a lot cleaner, more consistent, and more flexible. We're working on updating the documentation for v4, which is already much more complete than v3. So hopefully the changes won't be too confusing. Alan DeKok.
Hello, Wanted to try it out, but FR doesn't build ATM: src/lib/util/socket.c: In function ‘fr_socket_bind’: src/lib/util/socket.c:902:10: warning: implicit declaration of function ‘fr_cap_enable’ [-Wimplicit-function-declaration] 902 | (void)fr_cap_enable(CAP_NET_RAW, CAP_EFFECTIVE); /* Sets error on failure, which will be seen if the bind fails */ | ^~~~~~~~~~~~~ src/lib/util/socket.c:902:24: error: ‘CAP_NET_RAW’ undeclared (first use in this function) 902 | (void)fr_cap_enable(CAP_NET_RAW, CAP_EFFECTIVE); /* Sets error on failure, which will be seen if the bind fails */ | ^~~~~~~~~~~ src/lib/util/socket.c:902:24: note: each undeclared identifier is reported only once for each function it appears in src/lib/util/socket.c:902:37: error: ‘CAP_EFFECTIVE’ undeclared (first use in this function) 902 | (void)fr_cap_enable(CAP_NET_RAW, CAP_EFFECTIVE); /* Sets error on failure, which will be seen if the bind fails */ | ^~~~~~~~~~~~~ make[1]: *** [scripts/boiler.mk:704: build/objs/src/lib/util/socket.lo] Error 1 make[1]: Leaving directory '/mnt/wifi/users/NCH/src-dhcperfcli/freeradius-server-4.0.0-dhcperfcli' make: *** [Makefile:291: freeradius-build] Error 2 Regards, Nicolas. This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
On Nov 30, 2020, at 3:28 AM, Chaigneau, Nicolas via Freeradius-Devel <freeradius-devel@lists.freeradius.org> wrote:
Wanted to try it out, but FR doesn't build ATM:
src/lib/util/socket.c: In function ‘fr_socket_bind’: src/lib/util/socket.c:902:10: warning: implicit declaration of function ‘fr_cap_enable’ [-Wimplicit-function-declaration] 902 | (void)fr_cap_enable(CAP_NET_RAW, CAP_EFFECTIVE); /* Sets error on failure, which will be seen if the bind fails */ | ^~~~~~~~~~~~~
Hmm... it works in docker (ubuntu 18) and on GitHub continuous integration. Did you re-run "configure" after grabbing the latest image? Alan DeKok.
participants (3)
-
Alan DeKok -
Arran Cudbard-Bell -
Chaigneau, Nicolas