static int lw_nsnap_load_options(struct teamd_context *ctx, struct teamd_port *tdport, struct lw_psr_port_priv *psr_ppriv) { struct lw_nsnap_port_priv *nsnap_ppriv = lw_nsnap_ppriv_get(psr_ppriv); struct teamd_config_path_cookie *cpcookie = psr_ppriv->common.cpcookie; const char *host; int err; err = teamd_config_string_get(ctx, &host, "@.target_host", cpcookie); if (err) { teamd_log_err("Failed to get \"target_host\" link-watch option."); return -EINVAL; } err = set_sockaddr_in6(&nsnap_ppriv->dst, host); if (err) return err; teamd_log_dbg("target address \"%s\".", str_sockaddr_in6(&nsnap_ppriv->dst)); return 0; }
static int lw_ap_load_options(struct teamd_context *ctx, struct teamd_port *tdport, struct lw_psr_port_priv *psr_ppriv) { struct lw_ap_port_priv *ap_ppriv = lw_ap_ppriv_get(psr_ppriv); struct teamd_config_path_cookie *cpcookie = psr_ppriv->common.cpcookie; const char *host; int tmp; int err; err = teamd_config_string_get(ctx, &host, "@.source_host", cpcookie); if (err) { teamd_log_err("Failed to get \"source_host\" link-watch option."); return -EINVAL; } err = set_in_addr(&ap_ppriv->src, host); if (err) return err; teamd_log_dbg("source address \"%s\".", str_in_addr(&ap_ppriv->src)); err = teamd_config_string_get(ctx, &host, "@.target_host", cpcookie); if (err) { teamd_log_err("Failed to get \"target_host\" link-watch option."); return -EINVAL; } err = set_in_addr(&ap_ppriv->dst, host); if (err) return err; teamd_log_dbg("target address \"%s\".", str_in_addr(&ap_ppriv->dst)); err = teamd_config_bool_get(ctx, &ap_ppriv->validate_active, "@.validate_active", cpcookie); if (err) ap_ppriv->validate_active = false; teamd_log_dbg("validate_active \"%d\".", ap_ppriv->validate_active); err = teamd_config_bool_get(ctx, &ap_ppriv->validate_inactive, "@.validate_inactive", cpcookie); if (err) ap_ppriv->validate_inactive = false; teamd_log_dbg("validate_inactive \"%d\".", ap_ppriv->validate_inactive); err = teamd_config_bool_get(ctx, &ap_ppriv->send_always, "@.send_always", cpcookie); if (err) ap_ppriv->send_always = false; teamd_log_dbg("send_always \"%d\".", ap_ppriv->send_always); err = teamd_config_int_get(ctx, &tmp, "@.vlanid", cpcookie); if (!err) { if (tmp < 0 || tmp >= 4096) { teamd_log_err("Wrong \"vlanid\" option value."); return -EINVAL; } ap_ppriv->vlanid_in_use = true; ap_ppriv->vlanid = tmp; teamd_log_dbg("vlan id \"%u\".", ap_ppriv->vlanid); } return 0; }