From c398e42ca9d4bf0e966f86d94cf0da4e40ece265 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Thu, 20 Nov 2025 16:51:44 +0100 Subject: [PATCH] confd: drop leading ietf/infix prefix in source files Signed-off-by: Joachim Wiberg --- src/confd/src/Makefile.am | 54 +++--- src/confd/src/cni.c | 2 +- .../src/{infix-containers.c => containers.c} | 0 src/confd/src/core.h | 28 ++-- .../{infix-dhcp-client.c => dhcp-client.c} | 2 +- .../{infix-dhcp-common.c => dhcp-common.c} | 4 +- .../{infix-dhcp-common.h => dhcp-common.h} | 0 .../{infix-dhcp-server.c => dhcp-server.c} | 2 +- ...{infix-dhcpv6-client.c => dhcpv6-client.c} | 2 +- ...tf-factory-default.c => factory-default.c} | 0 src/confd/src/{infix-factory.c => factory.c} | 0 .../src/{infix-firewall.c => firewall.c} | 2 +- src/confd/src/{ietf-hardware.c => hardware.c} | 0 src/confd/src/ieee802-ethernet-interface.c | 2 +- ...{infix-if-bridge-mcd.c => if-bridge-mcd.c} | 2 +- ...nfix-if-bridge-port.c => if-bridge-port.c} | 2 +- .../src/{infix-if-bridge.c => if-bridge.c} | 2 +- src/confd/src/{infix-if-gre.c => if-gre.c} | 2 +- src/confd/src/{infix-if-lag.c => if-lag.c} | 2 +- src/confd/src/{infix-if-veth.c => if-veth.c} | 2 +- src/confd/src/{infix-if-vlan.c => if-vlan.c} | 2 +- .../src/{infix-if-vxlan.c => if-vxlan.c} | 2 +- src/confd/src/{infix-if-wifi.c => if-wifi.c} | 2 +- .../src/{ietf-interfaces.c => interfaces.c} | 2 +- .../src/{ietf-interfaces.h => interfaces.h} | 24 +-- src/confd/src/{ietf-ip.c => ip.c} | 2 +- src/confd/src/{ietf-keystore.c => keystore.c} | 0 src/confd/src/{infix-meta.c => meta.c} | 0 src/confd/src/netlink.c | 156 ++++++++++++++++++ src/confd/src/{ietf-routing.c => routing.c} | 0 .../src/{infix-services.c => services.c} | 0 src/confd/src/{ietf-syslog.c => syslog.c} | 0 ...ix-system-software.c => system-software.c} | 0 src/confd/src/{ietf-system.c => system.c} | 0 34 files changed, 228 insertions(+), 72 deletions(-) rename src/confd/src/{infix-containers.c => containers.c} (100%) rename src/confd/src/{infix-dhcp-client.c => dhcp-client.c} (99%) rename src/confd/src/{infix-dhcp-common.c => dhcp-common.c} (98%) rename src/confd/src/{infix-dhcp-common.h => dhcp-common.h} (100%) rename src/confd/src/{infix-dhcp-server.c => dhcp-server.c} (99%) rename src/confd/src/{infix-dhcpv6-client.c => dhcpv6-client.c} (99%) rename src/confd/src/{ietf-factory-default.c => factory-default.c} (100%) rename src/confd/src/{infix-factory.c => factory.c} (100%) rename src/confd/src/{infix-firewall.c => firewall.c} (99%) rename src/confd/src/{ietf-hardware.c => hardware.c} (100%) rename src/confd/src/{infix-if-bridge-mcd.c => if-bridge-mcd.c} (99%) rename src/confd/src/{infix-if-bridge-port.c => if-bridge-port.c} (99%) rename src/confd/src/{infix-if-bridge.c => if-bridge.c} (99%) rename src/confd/src/{infix-if-gre.c => if-gre.c} (97%) rename src/confd/src/{infix-if-lag.c => if-lag.c} (99%) rename src/confd/src/{infix-if-veth.c => if-veth.c} (99%) rename src/confd/src/{infix-if-vlan.c => if-vlan.c} (99%) rename src/confd/src/{infix-if-vxlan.c => if-vxlan.c} (96%) rename src/confd/src/{infix-if-wifi.c => if-wifi.c} (99%) rename src/confd/src/{ietf-interfaces.c => interfaces.c} (99%) rename src/confd/src/{ietf-interfaces.h => interfaces.h} (93%) rename src/confd/src/{ietf-ip.c => ip.c} (99%) rename src/confd/src/{ietf-keystore.c => keystore.c} (100%) rename src/confd/src/{infix-meta.c => meta.c} (100%) create mode 100644 src/confd/src/netlink.c rename src/confd/src/{ietf-routing.c => routing.c} (100%) rename src/confd/src/{infix-services.c => services.c} (100%) rename src/confd/src/{ietf-syslog.c => syslog.c} (100%) rename src/confd/src/{infix-system-software.c => system-software.c} (100%) rename src/confd/src/{ietf-system.c => system.c} (100%) diff --git a/src/confd/src/Makefile.am b/src/confd/src/Makefile.am index 3692de39..8db05041 100644 --- a/src/confd/src/Makefile.am +++ b/src/confd/src/Makefile.am @@ -26,36 +26,36 @@ confd_plugin_la_SOURCES = \ base64.c base64.h \ core.c core.h \ dagger.c dagger.h \ - ietf-interfaces.c ietf-interfaces.h \ + interfaces.c interfaces.h \ ieee802-ethernet-interface.c \ - ietf-ip.c \ - infix-if-bridge.c \ - infix-if-lag.c \ - infix-if-bridge-mcd.c \ - infix-if-bridge-port.c \ - infix-if-veth.c \ - infix-if-vlan.c \ - infix-if-gre.c \ - infix-if-vxlan.c \ - infix-if-wifi.c \ - ietf-keystore.c \ - ietf-system.c \ - ietf-syslog.c \ - ietf-factory-default.c \ - ietf-routing.c \ - infix-dhcp-common.c \ - infix-dhcp-client.c \ - infix-dhcpv6-client.c \ - infix-dhcp-server.c \ - infix-factory.c \ - infix-firewall.c \ - infix-meta.c \ - infix-services.c \ - infix-system-software.c \ - ietf-hardware.c + ip.c \ + if-bridge.c \ + if-lag.c \ + if-bridge-mcd.c \ + if-bridge-port.c \ + if-veth.c \ + if-vlan.c \ + if-gre.c \ + if-vxlan.c \ + if-wifi.c \ + keystore.c \ + system.c \ + syslog.c \ + factory-default.c \ + routing.c \ + dhcp-common.c \ + dhcp-client.c \ + dhcpv6-client.c \ + dhcp-server.c \ + factory.c \ + firewall.c \ + meta.c \ + services.c \ + system-software.c \ + hardware.c if CONTAINERS -confd_plugin_la_SOURCES += infix-containers.c cni.c cni.h +confd_plugin_la_SOURCES += containers.c cni.c cni.h endif rauc_installer_sources = \ diff --git a/src/confd/src/cni.c b/src/confd/src/cni.c index 436a43fc..d70a863a 100644 --- a/src/confd/src/cni.c +++ b/src/confd/src/cni.c @@ -6,7 +6,7 @@ #include "core.h" #include "cni.h" -#include "ietf-interfaces.h" +#include "interfaces.h" #define CNI_NAME "/etc/cni/net.d/%s.conflist" diff --git a/src/confd/src/infix-containers.c b/src/confd/src/containers.c similarity index 100% rename from src/confd/src/infix-containers.c rename to src/confd/src/containers.c diff --git a/src/confd/src/core.h b/src/confd/src/core.h index fc0e62d8..95f451b9 100644 --- a/src/confd/src/core.h +++ b/src/confd/src/core.h @@ -183,19 +183,19 @@ static inline int register_rpc(sr_session_ctx_t *session, const char *xpath, } -/* ietf-interfaces.c */ +/* interfaces.c */ int ietf_interfaces_change(sr_session_ctx_t *session, struct lyd_node *config, struct lyd_node *diff, sr_event_t event, struct confd *confd); int ietf_interfaces_cand_init(struct confd *confd); -/* ietf-syslog.c */ +/* syslog.c */ int ietf_syslog_change(sr_session_ctx_t *session, struct lyd_node *config, struct lyd_node *diff, sr_event_t event, struct confd *confd); -/* ietf-system.c */ +/* system.c */ int ietf_system_rpc_init (struct confd *confd); int hostnamefmt (struct confd *confd, const char *fmt, char *hostnm, size_t hostlen, char *domain, size_t domlen); int ietf_system_change(sr_session_ctx_t *session, struct lyd_node *config, struct lyd_node *diff, sr_event_t event, struct confd *confd); -/* infix-containers.c */ +/* containers.c */ #ifdef CONTAINERS int infix_containers_change(sr_session_ctx_t *session, struct lyd_node *config, struct lyd_node *diff, sr_event_t event, struct confd *confd); int infix_containers_rpc_init(struct confd *confd); @@ -204,13 +204,13 @@ static inline int infix_containers_rpc_init(struct confd *confd) { return 0; } static inline int infix_containers_change(sr_session_ctx_t *session, struct lyd_node *config, struct lyd_node *diff, sr_event_t event, struct confd *confd) { return 0; } #endif -/* infix-dhcp-client.c */ +/* dhcp-client.c */ int infix_dhcp_client_change(sr_session_ctx_t *session, struct lyd_node *config, struct lyd_node *diff, sr_event_t event, struct confd *confd); -/* infix-dhcpv6-client.c */ +/* dhcpv6-client.c */ int infix_dhcpv6_client_change(sr_session_ctx_t *session, struct lyd_node *config, struct lyd_node *diff, sr_event_t event, struct confd *confd); -/* infix-dhcp-server.c */ +/* dhcp-server.c */ int infix_dhcp_server_candidate_init(struct confd *confd); int infix_dhcp_server_rpc_init(struct confd *confd); int infix_dhcp_server_change(sr_session_ctx_t *session, struct lyd_node *config, struct lyd_node *diff, sr_event_t event, struct confd *confd); @@ -218,31 +218,31 @@ int infix_dhcp_server_change(sr_session_ctx_t *session, struct lyd_node *config, /* ietf-routing */ int ietf_routing_change(sr_session_ctx_t *session, struct lyd_node *config, struct lyd_node *diff, sr_event_t event, struct confd *confd); -/* infix-factory.c */ +/* factory.c */ int infix_factory_rpc_init(struct confd *confd); /* ietf-factory-default */ int ietf_factory_default_rpc_init(struct confd *confd); -/* infix-meta.c */ +/* meta.c */ int infix_meta_change_cb(sr_session_ctx_t *session, struct lyd_node *config, struct lyd_node *diff, sr_event_t event, struct confd *confd); -/* infix-system-software.c */ +/* system-software.c */ int infix_system_sw_rpc_init(struct confd *confd); -/* infix-services.c */ +/* services.c */ int infix_services_change(sr_session_ctx_t *session, struct lyd_node *config, struct lyd_node *diff, sr_event_t event, struct confd *confd); -/* ietf-hardware.c */ +/* hardware.c */ int ietf_hardware_candidate_init(struct confd *confd); int ietf_hardware_change(sr_session_ctx_t *session, struct lyd_node *config, struct lyd_node *diff, sr_event_t event, struct confd *confd); -/* ietf-keystore.c */ +/* keystore.c */ #define SSH_HOSTKEYS "/etc/ssh/hostkeys" #define SSH_HOSTKEYS_NEXT SSH_HOSTKEYS"+" int ietf_keystore_change(sr_session_ctx_t *session, struct lyd_node *config, struct lyd_node *diff, sr_event_t event, struct confd *confd); -/* infix-firewall.c */ +/* firewall.c */ int infix_firewall_rpc_init(struct confd *confd); int infix_firewall_candidate_init(struct confd *confd); int infix_firewall_change(sr_session_ctx_t *session, struct lyd_node *config, struct lyd_node *diff, sr_event_t event, struct confd *confd); diff --git a/src/confd/src/infix-dhcp-client.c b/src/confd/src/dhcp-client.c similarity index 99% rename from src/confd/src/infix-dhcp-client.c rename to src/confd/src/dhcp-client.c index 8209577c..5b1a4611 100644 --- a/src/confd/src/infix-dhcp-client.c +++ b/src/confd/src/dhcp-client.c @@ -12,7 +12,7 @@ #include #include "core.h" -#include "infix-dhcp-common.h" +#include "dhcp-common.h" #define ARPING_MSEC 1000 #define MODULE "infix-dhcp-client" diff --git a/src/confd/src/infix-dhcp-common.c b/src/confd/src/dhcp-common.c similarity index 98% rename from src/confd/src/infix-dhcp-common.c rename to src/confd/src/dhcp-common.c index e796254b..d364ae59 100644 --- a/src/confd/src/infix-dhcp-common.c +++ b/src/confd/src/dhcp-common.c @@ -12,7 +12,7 @@ #include #include "core.h" -#include "infix-dhcp-common.h" +#include "dhcp-common.h" int dhcp_option_lookup(const struct lyd_node *id) { @@ -230,7 +230,7 @@ static void infer_options_v6(sr_session_ctx_t *session, const char *xpath) } /* - * Called from ietf-interfaces.c ifchange_cand() to infer DHCP options + * Called from interfaces.c ifchange_cand() to infer DHCP options * for both DHCPv4 and DHCPv6 client configurations */ int ifchange_cand_infer_dhcp(sr_session_ctx_t *session, const char *xpath) diff --git a/src/confd/src/infix-dhcp-common.h b/src/confd/src/dhcp-common.h similarity index 100% rename from src/confd/src/infix-dhcp-common.h rename to src/confd/src/dhcp-common.h diff --git a/src/confd/src/infix-dhcp-server.c b/src/confd/src/dhcp-server.c similarity index 99% rename from src/confd/src/infix-dhcp-server.c rename to src/confd/src/dhcp-server.c index 0e6bf373..86ce1a2f 100644 --- a/src/confd/src/infix-dhcp-server.c +++ b/src/confd/src/dhcp-server.c @@ -9,7 +9,7 @@ #include #include "core.h" -#include "infix-dhcp-common.h" +#include "dhcp-common.h" #define MODULE "infix-dhcp-server" #define ROOT_XPATH "/infix-dhcp-server:" diff --git a/src/confd/src/infix-dhcpv6-client.c b/src/confd/src/dhcpv6-client.c similarity index 99% rename from src/confd/src/infix-dhcpv6-client.c rename to src/confd/src/dhcpv6-client.c index a5c8807d..e8509c55 100644 --- a/src/confd/src/infix-dhcpv6-client.c +++ b/src/confd/src/dhcpv6-client.c @@ -12,7 +12,7 @@ #include #include "core.h" -#include "infix-dhcp-common.h" +#include "dhcp-common.h" #define MODULE "infix-dhcpv6-client" #define XPATH "/ietf-interfaces:interfaces/interface/ietf-ip:ipv6/infix-dhcpv6-client:dhcp" diff --git a/src/confd/src/ietf-factory-default.c b/src/confd/src/factory-default.c similarity index 100% rename from src/confd/src/ietf-factory-default.c rename to src/confd/src/factory-default.c diff --git a/src/confd/src/infix-factory.c b/src/confd/src/factory.c similarity index 100% rename from src/confd/src/infix-factory.c rename to src/confd/src/factory.c diff --git a/src/confd/src/infix-firewall.c b/src/confd/src/firewall.c similarity index 99% rename from src/confd/src/infix-firewall.c rename to src/confd/src/firewall.c index b46dbec7..1f88d4a7 100644 --- a/src/confd/src/infix-firewall.c +++ b/src/confd/src/firewall.c @@ -13,7 +13,7 @@ #include #include "core.h" -#include "ietf-interfaces.h" +#include "interfaces.h" #define MODULE "infix-firewall" #define XPATH "/infix-firewall:firewall" diff --git a/src/confd/src/ietf-hardware.c b/src/confd/src/hardware.c similarity index 100% rename from src/confd/src/ietf-hardware.c rename to src/confd/src/hardware.c diff --git a/src/confd/src/ieee802-ethernet-interface.c b/src/confd/src/ieee802-ethernet-interface.c index 754e1446..53f156eb 100644 --- a/src/confd/src/ieee802-ethernet-interface.c +++ b/src/confd/src/ieee802-ethernet-interface.c @@ -10,7 +10,7 @@ #include #include -#include "ietf-interfaces.h" +#include "interfaces.h" static bool iface_uses_autoneg(struct lyd_node *cif) { diff --git a/src/confd/src/infix-if-bridge-mcd.c b/src/confd/src/if-bridge-mcd.c similarity index 99% rename from src/confd/src/infix-if-bridge-mcd.c rename to src/confd/src/if-bridge-mcd.c index 8c3f0bd6..7ea3e92a 100644 --- a/src/confd/src/infix-if-bridge-mcd.c +++ b/src/confd/src/if-bridge-mcd.c @@ -10,7 +10,7 @@ #include #include -#include "ietf-interfaces.h" +#include "interfaces.h" static int gen_vlan(struct lyd_node *cif, struct lyd_node *vlan, FILE *conf) { diff --git a/src/confd/src/infix-if-bridge-port.c b/src/confd/src/if-bridge-port.c similarity index 99% rename from src/confd/src/infix-if-bridge-port.c rename to src/confd/src/if-bridge-port.c index ffb24d5e..d5445c11 100644 --- a/src/confd/src/infix-if-bridge-port.c +++ b/src/confd/src/if-bridge-port.c @@ -10,7 +10,7 @@ #include #include -#include "ietf-interfaces.h" +#include "interfaces.h" static const char *mstpd_cost_str(struct lyd_node *cost) { diff --git a/src/confd/src/infix-if-bridge.c b/src/confd/src/if-bridge.c similarity index 99% rename from src/confd/src/infix-if-bridge.c rename to src/confd/src/if-bridge.c index 55ffaf85..4244a6ad 100644 --- a/src/confd/src/infix-if-bridge.c +++ b/src/confd/src/if-bridge.c @@ -10,7 +10,7 @@ #include #include -#include "ietf-interfaces.h" +#include "interfaces.h" struct ixif_br { const char *name; diff --git a/src/confd/src/infix-if-gre.c b/src/confd/src/if-gre.c similarity index 97% rename from src/confd/src/infix-if-gre.c rename to src/confd/src/if-gre.c index dbb96224..bdaccd67 100644 --- a/src/confd/src/infix-if-gre.c +++ b/src/confd/src/if-gre.c @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause */ #include -#include "ietf-interfaces.h" +#include "interfaces.h" int gre_gen(struct lyd_node *dif, struct lyd_node *cif, FILE *ip) { diff --git a/src/confd/src/infix-if-lag.c b/src/confd/src/if-lag.c similarity index 99% rename from src/confd/src/infix-if-lag.c rename to src/confd/src/if-lag.c index 54667a0a..7a4d9418 100644 --- a/src/confd/src/infix-if-lag.c +++ b/src/confd/src/if-lag.c @@ -10,7 +10,7 @@ #include #include -#include "ietf-interfaces.h" +#include "interfaces.h" /* * The lag-port noode is only in the dif at initial creation, or removal. diff --git a/src/confd/src/infix-if-veth.c b/src/confd/src/if-veth.c similarity index 99% rename from src/confd/src/infix-if-veth.c rename to src/confd/src/if-veth.c index 584ca76a..306c61f2 100644 --- a/src/confd/src/infix-if-veth.c +++ b/src/confd/src/if-veth.c @@ -10,7 +10,7 @@ #include #include -#include "ietf-interfaces.h" +#include "interfaces.h" /* * While the kernel atomically creates/destroys the pair, in `running` diff --git a/src/confd/src/infix-if-vlan.c b/src/confd/src/if-vlan.c similarity index 99% rename from src/confd/src/infix-if-vlan.c rename to src/confd/src/if-vlan.c index 06097a08..0a79c6ba 100644 --- a/src/confd/src/infix-if-vlan.c +++ b/src/confd/src/if-vlan.c @@ -10,7 +10,7 @@ #include #include -#include "ietf-interfaces.h" +#include "interfaces.h" int ifchange_cand_infer_vlan(sr_session_ctx_t *session, const char *path) { diff --git a/src/confd/src/infix-if-vxlan.c b/src/confd/src/if-vxlan.c similarity index 96% rename from src/confd/src/infix-if-vxlan.c rename to src/confd/src/if-vxlan.c index f4e6ae98..bb8dacb2 100644 --- a/src/confd/src/infix-if-vxlan.c +++ b/src/confd/src/if-vxlan.c @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause */ #include -#include "ietf-interfaces.h" +#include "interfaces.h" int vxlan_gen(struct lyd_node *dif, struct lyd_node *cif, FILE *ip) { diff --git a/src/confd/src/infix-if-wifi.c b/src/confd/src/if-wifi.c similarity index 99% rename from src/confd/src/infix-if-wifi.c rename to src/confd/src/if-wifi.c index 2ef7bfd2..ab934a84 100644 --- a/src/confd/src/infix-if-wifi.c +++ b/src/confd/src/if-wifi.c @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause */ #include -#include "ietf-interfaces.h" +#include "interfaces.h" #define WPA_SUPPLICANT_FINIT_CONF "/etc/finit.d/available/wpa_supplicant-%s.conf" #define WPA_SUPPLICANT_CONF "/etc/wpa_supplicant-%s.conf" diff --git a/src/confd/src/ietf-interfaces.c b/src/confd/src/interfaces.c similarity index 99% rename from src/confd/src/ietf-interfaces.c rename to src/confd/src/interfaces.c index ee42a6a7..d1e3bcaf 100644 --- a/src/confd/src/ietf-interfaces.c +++ b/src/confd/src/interfaces.c @@ -11,7 +11,7 @@ #include #include -#include "ietf-interfaces.h" +#include "interfaces.h" #define IFACE_PROBE_TIMEOUT 40 diff --git a/src/confd/src/ietf-interfaces.h b/src/confd/src/interfaces.h similarity index 93% rename from src/confd/src/ietf-interfaces.h rename to src/confd/src/interfaces.h index a34accad..9367ec51 100644 --- a/src/confd/src/ietf-interfaces.h +++ b/src/confd/src/interfaces.h @@ -99,12 +99,12 @@ bool iface_has_quirk(const char *ifname, const char *quirkname); /* ieee802-ethernet-interface.c */ int netdag_gen_ethtool(struct dagger *net, struct lyd_node *cif, struct lyd_node *dif); -/* ietf-interfaces.c */ +/* interfaces.c */ const char *get_chassis_addr(void); int link_gen_address(struct lyd_node *cif, FILE *ip); int ietf_interfaces_get_all_l3(const struct lyd_node *tree, char ***ifaces); -/* ietf-ip.c */ +/* ip.c */ int netdag_gen_ipv6_autoconf(struct dagger *net, struct lyd_node *cif, struct lyd_node *dif, FILE *ip); int netdag_gen_ipv4_autoconf(struct dagger *net, struct lyd_node *cif, @@ -112,42 +112,42 @@ int netdag_gen_ipv4_autoconf(struct dagger *net, struct lyd_node *cif, int netdag_gen_ip_addrs(struct dagger *net, FILE *ip, const char *proto, struct lyd_node *cif, struct lyd_node *dif); -/* infix-if-bridge.c */ +/* if-bridge.c */ int bridge_mstpd_gen(struct lyd_node *cifs); int bridge_gen(struct lyd_node *dif, struct lyd_node *cif, FILE *ip, int add); int bridge_add_deps(struct lyd_node *cif); -/* infix-if-bridge-mcd.c */ +/* if-bridge-mcd.c */ int bridge_mcd_gen(struct lyd_node *cifs); -/* infix-if-bridge-port.c */ +/* if-bridge-port.c */ int bridge_port_gen(struct lyd_node *dif, struct lyd_node *cif, FILE *ip); -/* infix-if-wifi.c */ +/* if-wifi.c */ int wifi_gen(struct lyd_node *dif, struct lyd_node *cif, struct dagger *net); int wifi_gen_del(struct lyd_node *dif, struct dagger *net); -/* infix-if-gre.c */ +/* if-gre.c */ int gre_gen(struct lyd_node *dif, struct lyd_node *cif, FILE *ip); -/* infix-if-lag.c */ +/* if-lag.c */ int lag_port_gen(struct lyd_node *dif, struct lyd_node *cif); int lag_gen(struct lyd_node *dif, struct lyd_node *cif, FILE *ip, int add); int lag_add_deps(struct lyd_node *cif); -/* infix-if-veth.c */ +/* if-veth.c */ bool veth_is_primary(struct lyd_node *cif); int ifchange_cand_infer_veth(sr_session_ctx_t *session, const char *path); int veth_gen(struct lyd_node *dif, struct lyd_node *cif, FILE *ip); int veth_add_deps(struct lyd_node *cif); -/* infix-if-vlan.c */ +/* if-vlan.c */ int ifchange_cand_infer_vlan(sr_session_ctx_t *session, const char *path); int vlan_gen(struct lyd_node *dif, struct lyd_node *cif, FILE *ip); int vlan_add_deps(struct lyd_node *cif); -/* infix-dhcp-common.c */ +/* dhcp-common.c */ int ifchange_cand_infer_dhcp(sr_session_ctx_t *session, const char *path); -/* infix-if-vxlan.c */ +/* if-vxlan.c */ int vxlan_gen(struct lyd_node *dif, struct lyd_node *cif, FILE *ip); #endif /* CONFD_IETF_INTERFACES_H_ */ diff --git a/src/confd/src/ietf-ip.c b/src/confd/src/ip.c similarity index 99% rename from src/confd/src/ietf-ip.c rename to src/confd/src/ip.c index adcf9cb8..1c843195 100644 --- a/src/confd/src/ietf-ip.c +++ b/src/confd/src/ip.c @@ -10,7 +10,7 @@ #include #include -#include "ietf-interfaces.h" +#include "interfaces.h" int netdag_gen_ipv6_autoconf(struct dagger *net, struct lyd_node *cif, struct lyd_node *dif, FILE *ip) diff --git a/src/confd/src/ietf-keystore.c b/src/confd/src/keystore.c similarity index 100% rename from src/confd/src/ietf-keystore.c rename to src/confd/src/keystore.c diff --git a/src/confd/src/infix-meta.c b/src/confd/src/meta.c similarity index 100% rename from src/confd/src/infix-meta.c rename to src/confd/src/meta.c diff --git a/src/confd/src/netlink.c b/src/confd/src/netlink.c new file mode 100644 index 00000000..e72b4a31 --- /dev/null +++ b/src/confd/src/netlink.c @@ -0,0 +1,156 @@ +/* SPDX-License-Identifier: BSD-3-Clause */ + +#include +#include +#include +#include +#include /* IFNAMSIZ */ +#include +#include +#include +#include +#include +#include +#include +#include + +#define NL_BUFSZ 4096 + +#define dbg(fmt, args...) if (nl_debug) warnx(fmt, ##args) +#define log(fmt, args...) warnx(fmt, ##args) + +static int nl_debug; +static char *nl_buf; + +static void scpy(char *dst, const char *src, size_t len) +{ + size_t i; + + for (i = 0; i < len; i++) { + if (src[i] == 0) + break; + dst[i] = src[i]; + } + + if (i < len) + dst[i] = 0; + else + dst[len - 1] = 0; +} + +static int nlmsg_validate(struct nlmsghdr *nlmsg, ssize_t len) +{ + ssize_t la; + + if (nlmsg->nlmsg_len < NLMSG_LENGTH(sizeof(struct ifinfomsg))) + return - 1; /* Packet too small or truncated! */ + + la = NLMSG_PAYLOAD(nlmsg, sizeof(struct ifinfomsg)); + if (la >= len) + return -1; /* Packet too large! */ + + return 0; +} + +static int nl_link(struct nlmsghdr *nlmsg, ssize_t len) +{ + char ifname[IFNAMSIZ]; + struct ifinfomsg *i; + struct rtattr *a; + ssize_t la; + + i = NLMSG_DATA(nlmsg); + a = (struct rtattr *)((char *)i + NLMSG_ALIGN(sizeof(struct ifinfomsg))); + la = NLMSG_PAYLOAD(nlmsg, sizeof(struct ifinfomsg)); + + for (; RTA_OK(a, la); a = RTA_NEXT(a, la)) { + if (a->rta_type != IFLA_IFNAME) + continue; + + scpy(ifname, RTA_DATA(a), sizeof(ifname)); + + switch (nlmsg->nlmsg_type) { + case RTM_NEWLINK: + dbg("%s: new link or IFF change, flags 0x%x, change 0x%x", ifname, i->ifi_flags, i->ifi_change); + return 1; + case RTM_DELLINK: + dbg("%s: delete link", ifname); + return 1; + default: + break; + } + } + + return 0; +} + +int nl_callback(int sd) +{ + while (1) { + struct nlmsghdr *nh; + ssize_t len; + size_t l; + + while ((len = recv(sd, nl_buf, NL_BUFSZ, 0)) < 0) { + if (errno == EINTR) + continue; + + return 0; + } + + l = (size_t)len; + for (nh = (struct nlmsghdr *)nl_buf; NLMSG_OK(nh, l); nh = NLMSG_NEXT(nh, l)) { + switch (nh->nlmsg_type) { + case RTM_NEWLINK: + case RTM_DELLINK: + if (nlmsg_validate(nh, len)) + continue; + return nl_link(nh, len); + case NLMSG_DONE: + case NLMSG_ERROR: + return 0; + default: + break; + } + } + } + + return 0; +} + +int main(void) +{ + struct sockaddr_nl sa = { 0 }; + struct pollfd pfd; + int sd; + + sd = socket(AF_NETLINK, SOCK_RAW | SOCK_NONBLOCK | SOCK_CLOEXEC, NETLINK_ROUTE); + if (sd < 0) + err(1, "socket()"); + + sa.nl_family = AF_NETLINK; + sa.nl_groups = RTMGRP_IPV4_ROUTE | RTMGRP_LINK; + sa.nl_pid = getpid(); + + if (bind(sd, (struct sockaddr *)&sa, sizeof(sa)) < 0) + err(1, "bind()"); + + nl_buf = malloc(NL_BUFSZ); + if (!nl_buf) + err(1, "malloc()"); + + pfd.fd = sd; + pfd.events = POLLIN; + while (1) { + int rc; + + rc = poll(&pfd, 1, -1); + if (rc == -1) + break; + + if (nl_callback(sd)) + log("link change"); + } + + return !!close(sd); +} diff --git a/src/confd/src/ietf-routing.c b/src/confd/src/routing.c similarity index 100% rename from src/confd/src/ietf-routing.c rename to src/confd/src/routing.c diff --git a/src/confd/src/infix-services.c b/src/confd/src/services.c similarity index 100% rename from src/confd/src/infix-services.c rename to src/confd/src/services.c diff --git a/src/confd/src/ietf-syslog.c b/src/confd/src/syslog.c similarity index 100% rename from src/confd/src/ietf-syslog.c rename to src/confd/src/syslog.c diff --git a/src/confd/src/infix-system-software.c b/src/confd/src/system-software.c similarity index 100% rename from src/confd/src/infix-system-software.c rename to src/confd/src/system-software.c diff --git a/src/confd/src/ietf-system.c b/src/confd/src/system.c similarity index 100% rename from src/confd/src/ietf-system.c rename to src/confd/src/system.c