- 11 Dec, 2017 7 commits
-
-
Lubomir Rintel authored
Tailored to fit both nmcli and keyfile needs.
-
Lubomir Rintel authored
What works: nmcli c add con-name dum0 ifname dum0 type dummy \ tc.qdiscs 'ingress, root pfifo_fast' nmcli c modify dum0 -tc.qdiscs 'root pfifo_fast' nmcli c modify dum0 +tc.qdiscs 'root handle 666: fq_codel'
-
Lubomir Rintel authored
Tailored to fit both nmcli and keyfile needs.
-
Lubomir Rintel authored
-
Lubomir Rintel authored
"no_value" indicates that the the attribute is a single word, not a key=value pair. If the type is BOOLEAN then the attribute is considered true, if it's a STRING then the key is used instead of a value. "consumes_rest" indicates that the particular key takes the unparseable tail of the string for a value. This allows parsing tc-style strings. Consider this filter: ,------ regular key/value pair ,-----'----. root handle 1234: matchall action simple foo bar baz | | `-----------.-----------' | | `- "", STRING, consumes_rest | `------------------- "kind", STRING, no_value `-------------------------------------- "root', BOOLEAN, no_value
-
Lubomir Rintel authored
Allows doing a nm_utils_parse_variant_attributes(..., ' ', ' ').
-
Lubomir Rintel authored
-
- 08 Dec, 2017 2 commits
-
-
Thomas Haller authored
Make use of NMUtilsNamedValue in nm_utils_format_variant_attributes(). This avoids creating a GList and sorting it. Also, reuse nm_utils_named_values_from_str_dict() in nm_setting_bond_get_option().
-
Thomas Haller authored
I don't think we should do this. - renamining/dropping configure options is still an annoyance, because it requires to different ./configure options depending on the version. The rename from --enable-teamctl to --enable-team might be theoretically nice, but more annoying then helpful. - There is no strict dependency between --enable-team and --enable-json-validation. At most, one could argue that when enabling the team plugin (--enable-teamctl), then libnm must also be build with --enable-json-validation. But in fact, the team plugin will happily work with a libnm that doesn't link against libjansson. That is --enable-teamctl --disable-json-validation will work in practice just fine. On the other hand, libnm is a client library to create connection profiles, fully supporting team profiles also makes sense if the actual plugin is not installed (or build). Thus, --disable-teamctl --enable-json-validation certainly makes sense. At this point, one might ask whether libnm is even still complete without libjansson. Maybe libnm should *require* --enable-json-validation. But that is not what the patch was doing, and it would also need some careful consideration before doing so. This reverts commit 9d5cd7ea.
-
- 07 Dec, 2017 9 commits
-
-
Francesco Giudici authored
Rename the team functionality enablement from 'teamdctl' to 'team'. Force jansson lib requirement for team functionality: NetworkManager requires the teamd daemon to manage team. As teamd depends upon jansson lib, adding jansson requirement for teaming support in NetworkManager seems reasonable. Remove the jansson_validation flag, as the only generic json function in nmcli (not related to team) was the one to check if a string was in json format. Anyway, that function is used for team checks only. So, move also json validation functions under the WITH_TEAM flag.
-
Francesco Giudici authored
till now when no explicit value was set on a property, the default value for that property was returned, also if the property was not applicable to the selected runner. Fix this, showing default values for properties only when relevant and showing instead -1 or null when the property is not relevant for the selected runner. Moreover, reset all the properties but the link-watchers when the team.runner is changed: this is required to clean up the properties unrelated to the new runner and start with the runner-specific defaults.
-
Francesco Giudici authored
Move code from _nm_utils_team_config_get to the brand new _json_team_add_defaults function without any change. Then remove the duplicated code from _nm_utils_team_config_equal and leverage the new function. Here the only functional change is that the defaults for "notify_peers" and "mcast_rejoin" for the "activebackup" runner are added (the only case in which their default values are different than 0).
-
Francesco Giudici authored
-
Francesco Giudici authored
-
Francesco Giudici authored
-
Francesco Giudici authored
-
Francesco Giudici authored
-
Francesco Giudici authored
When jansson lib version is < 2.8 the order of the keys of json objects is not preserved automatically. In particular, when loading the json string, parsing it and dumping it back to a string the key order will be lost if the now deprecated JSON_PRESERVE_ORDER flag is not set. Add the flag: will do nothing on recent jansson versions but will fix behavior for legacy ones.
-
- 29 Nov, 2017 1 commit
-
-
Thomas Haller authored
-
- 24 Nov, 2017 1 commit
-
-
Thomas Haller authored
We should use the same str2bool parser everywhere: _nm_utils_ascii_str_to_bool(). Incidentally, this function allows more forms of expressing a boolean value. $ nmcli connection modify "$CON" ipv4.routes '1.2.3.4/32 1.2.3.1 onlink=1' Error: failed to modify ipv4.routes: invalid option 'onlink=1': invalid boolean value '1' for attribute 'onlink'.
-
- 21 Nov, 2017 1 commit
-
-
Thomas Haller authored
-
- 16 Nov, 2017 2 commits
-
-
Thomas Haller authored
We also do this for libnm and libnm-core, where it causes visible changes in behavior. But if somebody would rely on the hashing implementation for hash tables, it would be seriously flawed.
-
Thomas Haller authored
Next we will use siphash24() instead of the glib version g_direct_hash() or g_str_hash(). Hence, the "nm-utils/nm-hash-utils.h" header becomes very fundamental and will be needed basically everywhere. Instead of requiring the users to include them, let it be included via "nm-default.h" header.
-
- 14 Nov, 2017 1 commit
-
-
Beniamino Galvani authored
Currently there are multiple features that require Jansson support, but WITH_JANSSON=1 is set only when configuring with --enable-json-validation. Therefore a build with "--disable-json-validation --enable-ovs" fails. The availability of Jansson (WITH_JANSSON) should only be used: - to check if dependent features can be enabled - to determine compiler and linker flags in the Makefile - in nm-jansson.h to define compatibility functions if needed Everything else must be controlled by a configure switch. https://bugzilla.gnome.org/show_bug.cgi?id=790233
-
- 09 Nov, 2017 4 commits
-
-
Francesco Giudici authored
Rework a bit the way default values are check, set and aligned.
-
Francesco Giudici authored
-
Thomas Haller authored
-
Thomas Haller authored
-
- 30 Oct, 2017 1 commit
-
-
Thomas Haller authored
We want to support large number of routes. Reduce the number of copies, by adding internal accessor functions. Also, work around a complaint from coverity: 46. NetworkManager-1.9.2/libnm-core/nm-utils.c:1987: dereference: Dereferencing a null pointer "names".
-
- 23 Oct, 2017 1 commit
-
-
Thomas Haller authored
Since kernel commit a4176a9391868bfa87705bcd2e3b49e9b9dd2996 (net: reject creation of netdev names with colons), kernel rejects any colons in the interface name. Since kernel could get away with tightening up the check, we can too. The user anyway can not choose arbitrary interface names, like "all", "default", "bonding_masters" are all going to fail one way or another.
-
- 19 Oct, 2017 1 commit
-
-
Beniamino Galvani authored
teamd adds the "tx_hash" property for "lacp" and "loadbalance" runners when not present. Do the same so that our original configuration matches with the one reported by teamd. https://bugzilla.redhat.com/show_bug.cgi?id=1497333
-
- 18 Oct, 2017 2 commits
-
-
Thomas Haller authored
By using a macro, we don't cast all the types to guint. Instead, we use their native types directly. Hence, we don't need nm_hash_update_uint64() nor nm_hash_update_ptr(). Also, for types smaller then guint like char, we save hashing the all zero bytes.
-
Thomas Haller authored
The privious NM_HASH_* macros directly operated on a guint value and were thus close to the actual implementation. Replace them by adding a NMHashState struct and accessors to update the hash state. This hides the implementation better and would allow us to carry more state. For example, we could switch to siphash24() transparently. For now, we still do a form basically djb2 hashing, albeit with differing start seed. Also add nm_hash_str() and nm_str_hash(): - nm_hash_str() is our own string hashing implementation - nm_str_hash() is our own string implementation, but with a GHashFunc signature, suitable to pass it to g_hash_table_new(). Also, it has this name in order to remind you of g_str_hash(), which it is replacing.
-
- 17 Oct, 2017 1 commit
-
-
Thomas Haller authored
"nm-utils/nm-shared-utils.h" shall contain utility function without other dependencies. It is intended to be used by other projects as-is. nm_utils_random_bytes() requires getrandom() and a HAVE_GETRANDOM configure check. That makes it more cumbersome to re-use "nm-shared-utils.h", in cases where you don't care about nm_utils_random_bytes(). Split nm_utils_random_bytes() out to a separate file. Same for hash utils, which depend on nm_utils_random_bytes(). Also, hash utils will eventually be extended to use siphash24.
-
- 13 Oct, 2017 1 commit
-
-
Thomas Haller authored
Introduce a NM_HASH_INIT() function. It makes the places where we initialize a hash with a certain seed visually clear. Also, move them from "shared/nm-utils/nm-shared-utils.h" to "shared/nm-utils/nm-macros-internal.h". We might want to have NM_HASH_INIT() non-inline (hence, define it in the source file).
-
- 27 Sep, 2017 1 commit
-
-
Thomas Haller authored
GArray's and GPtrArray's plen argument is unsigned. The index variable to iterate the list, should not have a smaller range (or different data type). Also, assert against negative idx argument.
-
- 13 Sep, 2017 1 commit
-
-
Thomas Haller authored
CC libnm-core/libnm_core_libnm_core_la-nm-utils.lo libnm-core/nm-utils.c:210:6: error: variable 'encodings' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized] if (lang) { ^~~~ libnm-core/nm-utils.c:220:7: note: uninitialized use occurs here if (!encodings) { ^~~~~~~~~ libnm-core/nm-utils.c:210:2: note: remove the 'if' if its condition is always true if (lang) { ^~~~~~~~~~ libnm-core/nm-utils.c:198:30: note: initialize the variable 'encodings' to silence this warning const char *const *encodings; ^ = NULL Fixes: 28a06274
-
- 12 Sep, 2017 2 commits
-
-
Beniamino Galvani authored
Also consider LC_ALL and LC_CTYPE environment variables, in addition to LANG, to determine the charset used for converting SSIDs to UTF-8. https://bugzilla.gnome.org/show_bug.cgi?id=784415
-
Beniamino Galvani authored
Instead of performing the parsing of environment variables and the lookup for every string, cache the selected encoding.
-
- 05 Sep, 2017 1 commit
-
-
Thomas Haller authored
-