mirror of
https://github.com/kernelkit/infix.git
synced 2026-08-02 13:53:01 +02:00
confd: bridge: Simplify function names after review
Agreement: Avoid abbreviations in exported functions. Use short, prefix-less, names for local functions.
This commit is contained in:
@@ -408,7 +408,7 @@ static int netdag_gen_afspec_add(sr_session_ctx_t *session, struct dagger *net,
|
||||
DEBUG_IFACE(dif, "");
|
||||
|
||||
if (!strcmp(iftype, "infix-if-type:bridge")) {
|
||||
err = ixif_br_gen(dif, cif, ip, 1);
|
||||
err = bridge_gen(dif, cif, ip, 1);
|
||||
} else if (!strcmp(iftype, "infix-if-type:dummy")) {
|
||||
err = netdag_gen_dummy(net, NULL, cif, ip);
|
||||
} else if (!strcmp(iftype, "infix-if-type:veth")) {
|
||||
@@ -439,7 +439,7 @@ static int netdag_gen_afspec_set(sr_session_ctx_t *session, struct dagger *net,
|
||||
DEBUG_IFACE(dif, "");
|
||||
|
||||
if (!strcmp(iftype, "infix-if-type:bridge"))
|
||||
return ixif_br_gen(dif, cif, ip, 0);
|
||||
return bridge_gen(dif, cif, ip, 0);
|
||||
if (!strcmp(iftype, "infix-if-type:vlan"))
|
||||
return netdag_gen_vlan(net, dif, cif, ip);
|
||||
if (!strcmp(iftype, "infix-if-type:veth"))
|
||||
@@ -602,7 +602,7 @@ static sr_error_t netdag_gen_iface(sr_session_ctx_t *session, struct dagger *net
|
||||
|
||||
fputc('\n', ip);
|
||||
|
||||
err = ixif_br_port_gen(dif, cif, ip);
|
||||
err = bridge_port_gen(dif, cif, ip);
|
||||
if (err)
|
||||
goto err_close_ip;
|
||||
|
||||
@@ -673,7 +673,7 @@ static sr_error_t ifchange_post(sr_session_ctx_t *session, struct dagger *net,
|
||||
* regenerate the full config for mcd every time by walking
|
||||
* the full configuration.
|
||||
*/
|
||||
err = ixif_br_mcd_gen(cifs);
|
||||
err = bridge_mcd_gen(cifs);
|
||||
|
||||
return err ? SR_ERR_INTERNAL : SR_ERR_OK;
|
||||
}
|
||||
|
||||
@@ -58,11 +58,11 @@ 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 */
|
||||
int ixif_br_gen(struct lyd_node *dif, struct lyd_node *cif, FILE *ip, int add);
|
||||
int bridge_gen(struct lyd_node *dif, struct lyd_node *cif, FILE *ip, int add);
|
||||
/* infix-if-bridge-mcd.c */
|
||||
int ixif_br_mcd_gen(struct lyd_node *cifs);
|
||||
int bridge_mcd_gen(struct lyd_node *cifs);
|
||||
/* infix-if-bridge-port.c */
|
||||
int ixif_br_port_gen(struct lyd_node *dif, struct lyd_node *cif, FILE *ip);
|
||||
int bridge_port_gen(struct lyd_node *dif, struct lyd_node *cif, FILE *ip);
|
||||
|
||||
/* infix-if-veth.c */
|
||||
int ifchange_cand_infer_veth(sr_session_ctx_t *session, const char *path);
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
#include "ietf-interfaces.h"
|
||||
|
||||
static int ixif_br_mcd_gen_br_vlan(struct lyd_node *cif, struct lyd_node *vlan, FILE *conf)
|
||||
static int gen_vlan(struct lyd_node *cif, struct lyd_node *vlan, FILE *conf)
|
||||
{
|
||||
const char *iface, *querier, *upper;
|
||||
struct lyd_node *mcast;
|
||||
@@ -50,7 +50,7 @@ static int ixif_br_mcd_gen_br_vlan(struct lyd_node *cif, struct lyd_node *vlan,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ixif_br_mcd_gen_br(struct lyd_node *cif, FILE *conf)
|
||||
static int gen_bridge(struct lyd_node *cif, FILE *conf)
|
||||
{
|
||||
struct lyd_node *vlans, *vlan, *mcast;
|
||||
const char *iface, *querier;
|
||||
@@ -77,7 +77,7 @@ static int ixif_br_mcd_gen_br(struct lyd_node *cif, FILE *conf)
|
||||
return 0;
|
||||
|
||||
LYX_LIST_FOR_EACH(lyd_child(vlans), vlan, "vlan") {
|
||||
err = ixif_br_mcd_gen_br_vlan(cif, vlan, conf);
|
||||
err = gen_vlan(cif, vlan, conf);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
@@ -85,14 +85,14 @@ static int ixif_br_mcd_gen_br(struct lyd_node *cif, FILE *conf)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ixif_br_mcd_gen(struct lyd_node *cifs)
|
||||
int bridge_mcd_gen(struct lyd_node *cifs)
|
||||
{
|
||||
FILE *conf, *stop, *start;
|
||||
struct lyd_node *cif;
|
||||
int err = 0;
|
||||
bool empty;
|
||||
|
||||
conf = fopen("/etc/mc.d/interfaces.conf.next", "w");
|
||||
conf = fopen("/etc/mc.d/bridges.conf.next", "w");
|
||||
if (!conf)
|
||||
return -EIO;
|
||||
|
||||
@@ -100,7 +100,7 @@ int ixif_br_mcd_gen(struct lyd_node *cifs)
|
||||
if (strcmp(lydx_get_cattr(cif, "type"), "infix-if-type:bridge"))
|
||||
continue;
|
||||
|
||||
err = ixif_br_mcd_gen_br(cif, conf);
|
||||
err = gen_bridge(cif, conf);
|
||||
if (err)
|
||||
break;
|
||||
}
|
||||
@@ -118,7 +118,7 @@ int ixif_br_mcd_gen(struct lyd_node *cifs)
|
||||
goto out_remove;
|
||||
}
|
||||
|
||||
fputs("mv /etc/mc.d/interfaces.conf.next /etc/mc.d/interfaces.conf\n", start);
|
||||
fputs("mv /etc/mc.d/bridges.conf.next /etc/mc.d/bridges.conf\n", start);
|
||||
fputs("initctl -bnq enable mcd\n", start);
|
||||
fputs("initctl -bnq touch mcd\n", start);
|
||||
fclose(start);
|
||||
@@ -136,6 +136,6 @@ int ixif_br_mcd_gen(struct lyd_node *cifs)
|
||||
}
|
||||
|
||||
out_remove:
|
||||
remove("/etc/mc.d/interfaces.conf.next");
|
||||
remove("/etc/mc.d/bridges.conf.next");
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -12,8 +12,7 @@
|
||||
|
||||
#include "ietf-interfaces.h"
|
||||
|
||||
static const char *ixif_br_port_get_egress_mode(const char *iface, int vid,
|
||||
const char *brname)
|
||||
static const char *get_port_egress_mode(const char *iface, int vid, const char *brname)
|
||||
{
|
||||
static const char *modes[] = { "tagged", "untagged", NULL };
|
||||
const char **mode;
|
||||
@@ -29,14 +28,14 @@ static const char *ixif_br_port_get_egress_mode(const char *iface, int vid,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static int ixif_br_port_gen_pvid_del(struct lyd_node *cif, const char *brname, int vid)
|
||||
static int gen_pvid_del(struct lyd_node *cif, const char *brname, int vid)
|
||||
{
|
||||
const char *iface, *mode;
|
||||
FILE *exit;
|
||||
|
||||
iface = lydx_get_cattr(cif, "name");
|
||||
|
||||
mode = ixif_br_port_get_egress_mode(iface, vid, brname);
|
||||
mode = get_port_egress_mode(iface, vid, brname);
|
||||
if (!mode)
|
||||
/* Port is not a member of the VLAN anymore, so the
|
||||
* PVID is already removed.
|
||||
@@ -58,14 +57,14 @@ static int ixif_br_port_gen_pvid_del(struct lyd_node *cif, const char *brname, i
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ixif_br_port_gen_pvid_add(struct lyd_node *cif, const char *brname, int vid)
|
||||
static int gen_pvid_add(struct lyd_node *cif, const char *brname, int vid)
|
||||
{
|
||||
const char *iface, *mode;
|
||||
FILE *init;
|
||||
|
||||
iface = lydx_get_cattr(cif, "name");
|
||||
|
||||
mode = ixif_br_port_get_egress_mode(iface, vid, brname);
|
||||
mode = get_port_egress_mode(iface, vid, brname);
|
||||
if (!mode) {
|
||||
WARN("%s is not a member of VLAN %d: Ignoring PVID", iface, vid);
|
||||
return 0;
|
||||
@@ -83,7 +82,7 @@ static int ixif_br_port_gen_pvid_add(struct lyd_node *cif, const char *brname, i
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ixif_br_port_gen_pvid(struct lyd_node *dif, struct lyd_node *cif)
|
||||
static int gen_pvid(struct lyd_node *dif, struct lyd_node *cif)
|
||||
{
|
||||
struct lyd_node *bridge, *pvid;
|
||||
struct lydx_diff pvdiff;
|
||||
@@ -107,13 +106,13 @@ static int ixif_br_port_gen_pvid(struct lyd_node *dif, struct lyd_node *cif)
|
||||
* old bridge.
|
||||
*/
|
||||
if (!bridge && pvdiff.old) {
|
||||
err = ixif_br_port_gen_pvid_del(cif, brname, atoi(pvdiff.old));
|
||||
err = gen_pvid_del(cif, brname, atoi(pvdiff.old));
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
|
||||
if (pvdiff.new) {
|
||||
err = ixif_br_port_gen_pvid_add(cif, brname, atoi(pvdiff.new));
|
||||
err = gen_pvid_add(cif, brname, atoi(pvdiff.new));
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
@@ -121,7 +120,7 @@ static int ixif_br_port_gen_pvid(struct lyd_node *dif, struct lyd_node *cif)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ixif_br_port_gen_link(struct lyd_node *dif, struct lyd_node *cif)
|
||||
static int gen_link(struct lyd_node *dif, struct lyd_node *cif)
|
||||
{
|
||||
struct lyd_node *bp, *flood, *mcast;
|
||||
const char *brname, *iface;
|
||||
@@ -185,7 +184,7 @@ static int ixif_br_port_gen_link(struct lyd_node *dif, struct lyd_node *cif)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ixif_br_port_gen_join_leave(struct lyd_node *dif)
|
||||
static int gen_join_leave(struct lyd_node *dif)
|
||||
{
|
||||
struct lyd_node *bridge;
|
||||
struct lydx_diff brdiff;
|
||||
@@ -222,19 +221,19 @@ int ixif_br_port_gen_join_leave(struct lyd_node *dif)
|
||||
return err;
|
||||
}
|
||||
|
||||
int ixif_br_port_gen(struct lyd_node *dif, struct lyd_node *cif, FILE *ip)
|
||||
int bridge_port_gen(struct lyd_node *dif, struct lyd_node *cif, FILE *ip)
|
||||
{
|
||||
int err = 0;
|
||||
|
||||
err = ixif_br_port_gen_join_leave(dif);
|
||||
err = gen_join_leave(dif);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
err = ixif_br_port_gen_link(dif, cif);
|
||||
err = gen_link(dif, cif);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
err = ixif_br_port_gen_pvid(dif, cif);
|
||||
err = gen_pvid(dif, cif);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
|
||||
@@ -32,13 +32,11 @@ struct ixif_br {
|
||||
} exit;
|
||||
};
|
||||
|
||||
static bool ixif_br_vlan_has_mcast_snooping(struct ixif_br *br);
|
||||
|
||||
|
||||
/* MDB */
|
||||
|
||||
static int ixif_br_mdb_gen_filter(struct ixif_br *br, struct lyd_node *filter,
|
||||
const char *vidstr)
|
||||
static int gen_mdb_filter(struct ixif_br *br, struct lyd_node *filter,
|
||||
const char *vidstr)
|
||||
{
|
||||
const char *group, *iface;
|
||||
struct lyd_node *port;
|
||||
@@ -76,7 +74,7 @@ static int ixif_br_mdb_gen_filter(struct ixif_br *br, struct lyd_node *filter,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ixif_br_mdb_gen(struct ixif_br *br, struct lyd_node *ctx)
|
||||
static int gen_mdb(struct ixif_br *br, struct lyd_node *ctx)
|
||||
{
|
||||
struct lyd_node *filters, *filter;
|
||||
char *vidstr = NULL;
|
||||
@@ -92,7 +90,7 @@ static int ixif_br_mdb_gen(struct ixif_br *br, struct lyd_node *ctx)
|
||||
asprintf(&vidstr, "vid %s", vid);
|
||||
|
||||
LYX_LIST_FOR_EACH(lyd_child(filters), filter, "multicast-filter") {
|
||||
err = ixif_br_mdb_gen_filter(br, filter, vidstr);
|
||||
err = gen_mdb_filter(br, filter, vidstr);
|
||||
if (err)
|
||||
break;
|
||||
}
|
||||
@@ -106,7 +104,25 @@ static int ixif_br_mdb_gen(struct ixif_br *br, struct lyd_node *ctx)
|
||||
|
||||
/* MCAST */
|
||||
|
||||
static int ixif_br_mcast_gen_vlan(struct ixif_br *br, struct lyd_node *vlan)
|
||||
static bool has_vlan_mcast_snooping(struct ixif_br *br)
|
||||
{
|
||||
struct lyd_node *vlans, *vlan, *mcast;
|
||||
|
||||
vlans = lydx_get_descendant(lyd_child(br->cif), "bridge", "vlans", NULL);
|
||||
if (!vlans)
|
||||
return false;
|
||||
|
||||
LYX_LIST_FOR_EACH(lyd_child(vlans), vlan, "vlan") {
|
||||
mcast = lydx_get_descendant(lyd_child(vlan), "multicast", NULL);
|
||||
|
||||
if (mcast && lydx_is_enabled(mcast, "snooping"))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static int gen_vlan_mcast(struct ixif_br *br, struct lyd_node *vlan)
|
||||
{
|
||||
struct lyd_node *mcast;
|
||||
bool snooping;
|
||||
@@ -126,7 +142,7 @@ static int ixif_br_mcast_gen_vlan(struct ixif_br *br, struct lyd_node *vlan)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ixif_br_mcast_gen_vlans(struct ixif_br *br)
|
||||
static int gen_vlans_mcast(struct ixif_br *br)
|
||||
{
|
||||
struct lyd_node *vlans, *vlan;
|
||||
int err;
|
||||
@@ -136,7 +152,7 @@ static int ixif_br_mcast_gen_vlans(struct ixif_br *br)
|
||||
return 0;
|
||||
|
||||
LYX_LIST_FOR_EACH(lyd_child(vlans), vlan, "vlan") {
|
||||
err = ixif_br_mcast_gen_vlan(br, vlan);
|
||||
err = gen_vlan_mcast(br, vlan);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
@@ -144,7 +160,7 @@ static int ixif_br_mcast_gen_vlans(struct ixif_br *br)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ixif_br_mcast_gen_ieee_forward(struct ixif_br *br)
|
||||
static int gen_ieee_forward(struct ixif_br *br)
|
||||
{
|
||||
struct lyd_node *node, *proto;
|
||||
int fwd_mask = 0;
|
||||
@@ -174,14 +190,14 @@ static int ixif_br_mcast_gen_ieee_forward(struct ixif_br *br)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ixif_br_mcast_gen(struct ixif_br *br)
|
||||
static int gen_mcast(struct ixif_br *br)
|
||||
{
|
||||
bool vlan_snooping = ixif_br_vlan_has_mcast_snooping(br);
|
||||
bool vlan_snooping = has_vlan_mcast_snooping(br);
|
||||
struct lyd_node *mcast;
|
||||
bool snooping = false;
|
||||
int err, interval = 0;
|
||||
|
||||
err = ixif_br_mcast_gen_ieee_forward(br);
|
||||
err = gen_ieee_forward(br);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
@@ -202,7 +218,7 @@ static int ixif_br_mcast_gen(struct ixif_br *br)
|
||||
fprintf(br->bropts.fp, " mcast_query_interval %d", interval * 100);
|
||||
|
||||
if (vlan_snooping)
|
||||
err = ixif_br_mcast_gen_vlans(br);
|
||||
err = gen_vlans_mcast(br);
|
||||
|
||||
return err;
|
||||
}
|
||||
@@ -211,26 +227,7 @@ static int ixif_br_mcast_gen(struct ixif_br *br)
|
||||
|
||||
/* VLAN */
|
||||
|
||||
static bool ixif_br_vlan_has_mcast_snooping(struct ixif_br *br)
|
||||
{
|
||||
struct lyd_node *vlans, *vlan, *mcast;
|
||||
|
||||
vlans = lydx_get_descendant(lyd_child(br->cif), "bridge", "vlans", NULL);
|
||||
if (!vlans)
|
||||
return false;
|
||||
|
||||
LYX_LIST_FOR_EACH(lyd_child(vlans), vlan, "vlan") {
|
||||
mcast = lydx_get_descendant(lyd_child(vlan), "multicast", NULL);
|
||||
|
||||
if (mcast && lydx_is_enabled(mcast, "snooping"))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static int ixif_br_vlan_gen_membership(struct ixif_br *br,
|
||||
struct lyd_node *vlan, const char *mode)
|
||||
static int gen_vlan_membership(struct ixif_br *br, struct lyd_node *vlan, const char *mode)
|
||||
{
|
||||
struct lyd_node *portentry;
|
||||
enum lydx_op pop, vop;
|
||||
@@ -273,7 +270,7 @@ static int ixif_br_vlan_gen_membership(struct ixif_br *br,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ixif_br_vlan_gen(struct ixif_br *br)
|
||||
static int gen_vlan(struct ixif_br *br)
|
||||
{
|
||||
static const char *modes[] = { "tagged", "untagged", NULL };
|
||||
struct lyd_node *vlans, *vlan;
|
||||
@@ -296,12 +293,12 @@ static int ixif_br_vlan_gen(struct ixif_br *br)
|
||||
|
||||
LYX_LIST_FOR_EACH(lyd_child(vlans), vlan, "vlan") {
|
||||
for (mode = modes; *mode; mode++) {
|
||||
err = ixif_br_vlan_gen_membership(br, vlan, *mode);
|
||||
err = gen_vlan_membership(br, vlan, *mode);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
|
||||
err = ixif_br_mdb_gen(br, vlan);
|
||||
err = gen_mdb(br, vlan);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
@@ -313,7 +310,7 @@ static int ixif_br_vlan_gen(struct ixif_br *br)
|
||||
|
||||
/* BR */
|
||||
|
||||
static void ixif_br_gen_phys_address(struct ixif_br *br)
|
||||
static void gen_phys_address(struct ixif_br *br)
|
||||
{
|
||||
struct json_t *j;
|
||||
const char *mac;
|
||||
@@ -334,8 +331,8 @@ static void ixif_br_gen_phys_address(struct ixif_br *br)
|
||||
fprintf(br->ip, " address %s", mac);
|
||||
}
|
||||
|
||||
static int ixif_br_init(struct ixif_br *br, struct lyd_node *dif, struct lyd_node *cif,
|
||||
FILE *ip)
|
||||
static int init_snippets(struct ixif_br *br, struct lyd_node *dif, struct lyd_node *cif,
|
||||
FILE *ip)
|
||||
{
|
||||
int err = 0;
|
||||
|
||||
@@ -374,7 +371,7 @@ err:
|
||||
return err;
|
||||
}
|
||||
|
||||
static int ixif_br_fini(struct ixif_br *br)
|
||||
static int collect_snippets(struct ixif_br *br)
|
||||
{
|
||||
FILE *init, *exit = NULL;
|
||||
int err;
|
||||
@@ -410,39 +407,39 @@ static int ixif_br_fini(struct ixif_br *br)
|
||||
return err;
|
||||
}
|
||||
|
||||
int ixif_br_gen(struct lyd_node *dif, struct lyd_node *cif, FILE *ip, int add)
|
||||
int bridge_gen(struct lyd_node *dif, struct lyd_node *cif, FILE *ip, int add)
|
||||
{
|
||||
const char *op = add ? "add" : "set";
|
||||
struct ixif_br br;
|
||||
int err;
|
||||
|
||||
err = ixif_br_init(&br, dif, cif, ip);
|
||||
err = init_snippets(&br, dif, cif, ip);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
fputs(" mcast_flood_always 1", br.bropts.fp);
|
||||
fputs(" vlan_default_pvid 0", br.bropts.fp);
|
||||
|
||||
err = ixif_br_vlan_gen(&br);
|
||||
err = gen_vlan(&br);
|
||||
if (err)
|
||||
goto out;
|
||||
|
||||
err = ixif_br_mcast_gen(&br);
|
||||
err = gen_mcast(&br);
|
||||
if (err)
|
||||
goto out;
|
||||
|
||||
err = ixif_br_mdb_gen(&br, lydx_get_child(dif, "bridge"));
|
||||
err = gen_mdb(&br, lydx_get_child(dif, "bridge"));
|
||||
if (err)
|
||||
goto out;
|
||||
|
||||
fprintf(br.ip, "link %s dev %s", op, br.name);
|
||||
if (add)
|
||||
ixif_br_gen_phys_address(&br);
|
||||
gen_phys_address(&br);
|
||||
|
||||
fprintf(br.ip, " type bridge");
|
||||
|
||||
out:
|
||||
ixif_br_fini(&br);
|
||||
err = collect_snippets(&br);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user