mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-30 03:08:59 +00:00
Merge pull request #10365 from SaiGomathiN/ipv6-config-cmd
This commit is contained in:
commit
8996a815b5
113
pimd/pim6_cmd.c
113
pimd/pim6_cmd.c
@ -625,6 +625,102 @@ DEFPY (interface_no_ipv6_mld_query_interval,
|
|||||||
"frr-routing:ipv6");
|
"frr-routing:ipv6");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DEFPY (mld_group_watermark,
|
||||||
|
mld_group_watermark_cmd,
|
||||||
|
"ipv6 mld watermark-warn (1-65535)$limit",
|
||||||
|
IPV6_STR
|
||||||
|
MLD_STR
|
||||||
|
"Configure group limit for watermark warning\n"
|
||||||
|
"Group count to generate watermark warning\n")
|
||||||
|
{
|
||||||
|
PIM_DECLVAR_CONTEXT(vrf, pim);
|
||||||
|
/* TBD Depends on MLD data structure changes */
|
||||||
|
return CMD_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFPY (no_mld_group_watermark,
|
||||||
|
no_mld_group_watermark_cmd,
|
||||||
|
"no ipv6 mld watermark-warn [(1-65535)$limit]",
|
||||||
|
NO_STR
|
||||||
|
IPV6_STR
|
||||||
|
MLD_STR
|
||||||
|
"Unconfigure group limit for watermark warning\n"
|
||||||
|
IGNORED_IN_NO_STR)
|
||||||
|
{
|
||||||
|
PIM_DECLVAR_CONTEXT(vrf, pim);
|
||||||
|
/* TBD Depends on MLD data structure changes */
|
||||||
|
return CMD_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFPY (interface_ipv6_mld_query_max_response_time,
|
||||||
|
interface_ipv6_mld_query_max_response_time_cmd,
|
||||||
|
"ipv6 mld query-max-response-time (1-65535)$qmrt",
|
||||||
|
IPV6_STR
|
||||||
|
IFACE_MLD_STR
|
||||||
|
IFACE_MLD_QUERY_MAX_RESPONSE_TIME_STR
|
||||||
|
"Query response value in deci-seconds\n")
|
||||||
|
{
|
||||||
|
return gm_process_query_max_response_time_cmd(vty, qmrt_str);
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFPY (interface_no_ipv6_mld_query_max_response_time,
|
||||||
|
interface_no_ipv6_mld_query_max_response_time_cmd,
|
||||||
|
"no ipv6 mld query-max-response-time [(1-65535)]",
|
||||||
|
NO_STR
|
||||||
|
IPV6_STR
|
||||||
|
IFACE_MLD_STR
|
||||||
|
IFACE_MLD_QUERY_MAX_RESPONSE_TIME_STR
|
||||||
|
IGNORED_IN_NO_STR)
|
||||||
|
{
|
||||||
|
return gm_process_no_query_max_response_time_cmd(vty);
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFPY (interface_ipv6_mld_last_member_query_count,
|
||||||
|
interface_ipv6_mld_last_member_query_count_cmd,
|
||||||
|
"ipv6 mld last-member-query-count (1-255)$lmqc",
|
||||||
|
IPV6_STR
|
||||||
|
IFACE_MLD_STR
|
||||||
|
IFACE_MLD_LAST_MEMBER_QUERY_COUNT_STR
|
||||||
|
"Last member query count\n")
|
||||||
|
{
|
||||||
|
return gm_process_last_member_query_count_cmd(vty, lmqc_str);
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFPY (interface_no_ipv6_mld_last_member_query_count,
|
||||||
|
interface_no_ipv6_mld_last_member_query_count_cmd,
|
||||||
|
"no ipv6 mld last-member-query-count [(1-255)]",
|
||||||
|
NO_STR
|
||||||
|
IPV6_STR
|
||||||
|
IFACE_MLD_STR
|
||||||
|
IFACE_MLD_LAST_MEMBER_QUERY_COUNT_STR
|
||||||
|
IGNORED_IN_NO_STR)
|
||||||
|
{
|
||||||
|
return gm_process_no_last_member_query_count_cmd(vty);
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFPY (interface_ipv6_mld_last_member_query_interval,
|
||||||
|
interface_ipv6_mld_last_member_query_interval_cmd,
|
||||||
|
"ipv6 mld last-member-query-interval (1-65535)$lmqi",
|
||||||
|
IPV6_STR
|
||||||
|
IFACE_MLD_STR
|
||||||
|
IFACE_MLD_LAST_MEMBER_QUERY_INTERVAL_STR
|
||||||
|
"Last member query interval in deciseconds\n")
|
||||||
|
{
|
||||||
|
return gm_process_last_member_query_interval_cmd(vty, lmqi_str);
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFPY (interface_no_ipv6_mld_last_member_query_interval,
|
||||||
|
interface_no_ipv6_mld_last_member_query_interval_cmd,
|
||||||
|
"no ipv6 mld last-member-query-interval [(1-65535)]",
|
||||||
|
NO_STR
|
||||||
|
IPV6_STR
|
||||||
|
IFACE_MLD_STR
|
||||||
|
IFACE_MLD_LAST_MEMBER_QUERY_INTERVAL_STR
|
||||||
|
IGNORED_IN_NO_STR)
|
||||||
|
{
|
||||||
|
return gm_process_no_last_member_query_interval_cmd(vty);
|
||||||
|
}
|
||||||
|
|
||||||
DEFPY (show_ipv6_pim_rp,
|
DEFPY (show_ipv6_pim_rp,
|
||||||
show_ipv6_pim_rp_cmd,
|
show_ipv6_pim_rp_cmd,
|
||||||
"show ipv6 pim [vrf NAME] rp-info [X:X::X:X/M$group] [json$json]",
|
"show ipv6 pim [vrf NAME] rp-info [X:X::X:X/M$group] [json$json]",
|
||||||
@ -1501,6 +1597,23 @@ void pim_cmd_init(void)
|
|||||||
install_element(INTERFACE_NODE, &interface_ipv6_mld_query_interval_cmd);
|
install_element(INTERFACE_NODE, &interface_ipv6_mld_query_interval_cmd);
|
||||||
install_element(INTERFACE_NODE,
|
install_element(INTERFACE_NODE,
|
||||||
&interface_no_ipv6_mld_query_interval_cmd);
|
&interface_no_ipv6_mld_query_interval_cmd);
|
||||||
|
install_element(CONFIG_NODE, &mld_group_watermark_cmd);
|
||||||
|
install_element(VRF_NODE, &mld_group_watermark_cmd);
|
||||||
|
install_element(CONFIG_NODE, &no_mld_group_watermark_cmd);
|
||||||
|
install_element(VRF_NODE, &no_mld_group_watermark_cmd);
|
||||||
|
install_element(INTERFACE_NODE,
|
||||||
|
&interface_ipv6_mld_query_max_response_time_cmd);
|
||||||
|
install_element(INTERFACE_NODE,
|
||||||
|
&interface_no_ipv6_mld_query_max_response_time_cmd);
|
||||||
|
install_element(INTERFACE_NODE,
|
||||||
|
&interface_ipv6_mld_last_member_query_count_cmd);
|
||||||
|
install_element(INTERFACE_NODE,
|
||||||
|
&interface_no_ipv6_mld_last_member_query_count_cmd);
|
||||||
|
install_element(INTERFACE_NODE,
|
||||||
|
&interface_ipv6_mld_last_member_query_interval_cmd);
|
||||||
|
install_element(INTERFACE_NODE,
|
||||||
|
&interface_no_ipv6_mld_last_member_query_interval_cmd);
|
||||||
|
|
||||||
install_element(VIEW_NODE, &show_ipv6_pim_rp_cmd);
|
install_element(VIEW_NODE, &show_ipv6_pim_rp_cmd);
|
||||||
install_element(VIEW_NODE, &show_ipv6_pim_rp_vrf_all_cmd);
|
install_element(VIEW_NODE, &show_ipv6_pim_rp_vrf_all_cmd);
|
||||||
install_element(VIEW_NODE, &show_ipv6_pim_rpf_cmd);
|
install_element(VIEW_NODE, &show_ipv6_pim_rpf_cmd);
|
||||||
|
@ -5664,35 +5664,15 @@ DEFUN (interface_no_ip_igmp_version,
|
|||||||
"frr-routing:ipv4");
|
"frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN (interface_ip_igmp_query_max_response_time,
|
DEFPY (interface_ip_igmp_query_max_response_time,
|
||||||
interface_ip_igmp_query_max_response_time_cmd,
|
interface_ip_igmp_query_max_response_time_cmd,
|
||||||
"ip igmp query-max-response-time (1-65535)",
|
"ip igmp query-max-response-time (1-65535)$qmrt",
|
||||||
IP_STR
|
IP_STR
|
||||||
IFACE_IGMP_STR
|
IFACE_IGMP_STR
|
||||||
IFACE_IGMP_QUERY_MAX_RESPONSE_TIME_STR
|
IFACE_IGMP_QUERY_MAX_RESPONSE_TIME_STR
|
||||||
"Query response value in deci-seconds\n")
|
"Query response value in deci-seconds\n")
|
||||||
{
|
{
|
||||||
const struct lyd_node *pim_enable_dnode;
|
return gm_process_query_max_response_time_cmd(vty, qmrt_str);
|
||||||
|
|
||||||
pim_enable_dnode =
|
|
||||||
yang_dnode_getf(vty->candidate_config->dnode,
|
|
||||||
FRR_PIM_ENABLE_XPATH, VTY_CURR_XPATH,
|
|
||||||
"frr-routing:ipv4");
|
|
||||||
|
|
||||||
if (!pim_enable_dnode) {
|
|
||||||
nb_cli_enqueue_change(vty, "./enable", NB_OP_MODIFY,
|
|
||||||
"true");
|
|
||||||
} else {
|
|
||||||
if (!yang_dnode_get_bool(pim_enable_dnode, "."))
|
|
||||||
nb_cli_enqueue_change(vty, "./enable",
|
|
||||||
NB_OP_MODIFY, "true");
|
|
||||||
}
|
|
||||||
|
|
||||||
nb_cli_enqueue_change(vty, "./query-max-response-time", NB_OP_MODIFY,
|
|
||||||
argv[3]->arg);
|
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, FRR_GMP_INTERFACE_XPATH,
|
|
||||||
"frr-routing:ipv4");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN (interface_no_ip_igmp_query_max_response_time,
|
DEFUN (interface_no_ip_igmp_query_max_response_time,
|
||||||
@ -5704,10 +5684,7 @@ DEFUN (interface_no_ip_igmp_query_max_response_time,
|
|||||||
IFACE_IGMP_QUERY_MAX_RESPONSE_TIME_STR
|
IFACE_IGMP_QUERY_MAX_RESPONSE_TIME_STR
|
||||||
IGNORED_IN_NO_STR)
|
IGNORED_IN_NO_STR)
|
||||||
{
|
{
|
||||||
nb_cli_enqueue_change(vty, "./query-max-response-time", NB_OP_DESTROY,
|
return gm_process_no_query_max_response_time_cmd(vty);
|
||||||
NULL);
|
|
||||||
return nb_cli_apply_changes(vty, FRR_GMP_INTERFACE_XPATH,
|
|
||||||
"frr-routing:ipv4");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN_HIDDEN (interface_ip_igmp_query_max_response_time_dsec,
|
DEFUN_HIDDEN (interface_ip_igmp_query_max_response_time_dsec,
|
||||||
@ -5756,34 +5733,15 @@ DEFUN_HIDDEN (interface_no_ip_igmp_query_max_response_time_dsec,
|
|||||||
"frr-routing:ipv4");
|
"frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN (interface_ip_igmp_last_member_query_count,
|
DEFPY (interface_ip_igmp_last_member_query_count,
|
||||||
interface_ip_igmp_last_member_query_count_cmd,
|
interface_ip_igmp_last_member_query_count_cmd,
|
||||||
"ip igmp last-member-query-count (1-255)",
|
"ip igmp last-member-query-count (1-255)$lmqc",
|
||||||
IP_STR
|
IP_STR
|
||||||
IFACE_IGMP_STR
|
IFACE_IGMP_STR
|
||||||
IFACE_IGMP_LAST_MEMBER_QUERY_COUNT_STR
|
IFACE_IGMP_LAST_MEMBER_QUERY_COUNT_STR
|
||||||
"Last member query count\n")
|
"Last member query count\n")
|
||||||
{
|
{
|
||||||
const struct lyd_node *pim_enable_dnode;
|
return gm_process_last_member_query_count_cmd(vty, lmqc_str);
|
||||||
|
|
||||||
pim_enable_dnode =
|
|
||||||
yang_dnode_getf(vty->candidate_config->dnode,
|
|
||||||
FRR_PIM_ENABLE_XPATH, VTY_CURR_XPATH,
|
|
||||||
"frr-routing:ipv4");
|
|
||||||
if (!pim_enable_dnode) {
|
|
||||||
nb_cli_enqueue_change(vty, "./enable", NB_OP_MODIFY,
|
|
||||||
"true");
|
|
||||||
} else {
|
|
||||||
if (!yang_dnode_get_bool(pim_enable_dnode, "."))
|
|
||||||
nb_cli_enqueue_change(vty, "./enable",
|
|
||||||
NB_OP_MODIFY, "true");
|
|
||||||
}
|
|
||||||
|
|
||||||
nb_cli_enqueue_change(vty, "./robustness-variable", NB_OP_MODIFY,
|
|
||||||
argv[3]->arg);
|
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, FRR_GMP_INTERFACE_XPATH,
|
|
||||||
"frr-routing:ipv4");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN (interface_no_ip_igmp_last_member_query_count,
|
DEFUN (interface_no_ip_igmp_last_member_query_count,
|
||||||
@ -5795,41 +5753,18 @@ DEFUN (interface_no_ip_igmp_last_member_query_count,
|
|||||||
IFACE_IGMP_LAST_MEMBER_QUERY_COUNT_STR
|
IFACE_IGMP_LAST_MEMBER_QUERY_COUNT_STR
|
||||||
IGNORED_IN_NO_STR)
|
IGNORED_IN_NO_STR)
|
||||||
{
|
{
|
||||||
nb_cli_enqueue_change(vty, "./robustness-variable", NB_OP_DESTROY,
|
return gm_process_no_last_member_query_count_cmd(vty);
|
||||||
NULL);
|
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, FRR_GMP_INTERFACE_XPATH,
|
|
||||||
"frr-routing:ipv4");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN (interface_ip_igmp_last_member_query_interval,
|
DEFPY (interface_ip_igmp_last_member_query_interval,
|
||||||
interface_ip_igmp_last_member_query_interval_cmd,
|
interface_ip_igmp_last_member_query_interval_cmd,
|
||||||
"ip igmp last-member-query-interval (1-65535)",
|
"ip igmp last-member-query-interval (1-65535)$lmqi",
|
||||||
IP_STR
|
IP_STR
|
||||||
IFACE_IGMP_STR
|
IFACE_IGMP_STR
|
||||||
IFACE_IGMP_LAST_MEMBER_QUERY_INTERVAL_STR
|
IFACE_IGMP_LAST_MEMBER_QUERY_INTERVAL_STR
|
||||||
"Last member query interval in deciseconds\n")
|
"Last member query interval in deciseconds\n")
|
||||||
{
|
{
|
||||||
const struct lyd_node *pim_enable_dnode;
|
return gm_process_last_member_query_interval_cmd(vty, lmqi_str);
|
||||||
|
|
||||||
pim_enable_dnode =
|
|
||||||
yang_dnode_getf(vty->candidate_config->dnode,
|
|
||||||
FRR_PIM_ENABLE_XPATH, VTY_CURR_XPATH,
|
|
||||||
"frr-routing:ipv4");
|
|
||||||
if (!pim_enable_dnode) {
|
|
||||||
nb_cli_enqueue_change(vty, "./enable", NB_OP_MODIFY,
|
|
||||||
"true");
|
|
||||||
} else {
|
|
||||||
if (!yang_dnode_get_bool(pim_enable_dnode, "."))
|
|
||||||
nb_cli_enqueue_change(vty, "./enable",
|
|
||||||
NB_OP_MODIFY, "true");
|
|
||||||
}
|
|
||||||
|
|
||||||
nb_cli_enqueue_change(vty, "./last-member-query-interval", NB_OP_MODIFY,
|
|
||||||
argv[3]->arg);
|
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, FRR_GMP_INTERFACE_XPATH,
|
|
||||||
"frr-routing:ipv4");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN (interface_no_ip_igmp_last_member_query_interval,
|
DEFUN (interface_no_ip_igmp_last_member_query_interval,
|
||||||
@ -5841,11 +5776,7 @@ DEFUN (interface_no_ip_igmp_last_member_query_interval,
|
|||||||
IFACE_IGMP_LAST_MEMBER_QUERY_INTERVAL_STR
|
IFACE_IGMP_LAST_MEMBER_QUERY_INTERVAL_STR
|
||||||
IGNORED_IN_NO_STR)
|
IGNORED_IN_NO_STR)
|
||||||
{
|
{
|
||||||
nb_cli_enqueue_change(vty, "./last-member-query-interval",
|
return gm_process_no_last_member_query_interval_cmd(vty);
|
||||||
NB_OP_DESTROY, NULL);
|
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, FRR_GMP_INTERFACE_XPATH,
|
|
||||||
"frr-routing:ipv4");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN (interface_ip_pim_drprio,
|
DEFUN (interface_ip_pim_drprio,
|
||||||
|
@ -2749,3 +2749,94 @@ void pim_show_neighbors(struct pim_instance *pim, struct vty *vty,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int gm_process_query_max_response_time_cmd(struct vty *vty,
|
||||||
|
const char *qmrt_str)
|
||||||
|
{
|
||||||
|
const struct lyd_node *pim_enable_dnode;
|
||||||
|
|
||||||
|
pim_enable_dnode = yang_dnode_getf(vty->candidate_config->dnode,
|
||||||
|
FRR_PIM_ENABLE_XPATH, VTY_CURR_XPATH,
|
||||||
|
FRR_PIM_AF_XPATH_VAL);
|
||||||
|
|
||||||
|
if (!pim_enable_dnode) {
|
||||||
|
nb_cli_enqueue_change(vty, "./enable", NB_OP_MODIFY, "true");
|
||||||
|
} else {
|
||||||
|
if (!yang_dnode_get_bool(pim_enable_dnode, "."))
|
||||||
|
nb_cli_enqueue_change(vty, "./enable", NB_OP_MODIFY,
|
||||||
|
"true");
|
||||||
|
}
|
||||||
|
|
||||||
|
nb_cli_enqueue_change(vty, "./query-max-response-time", NB_OP_MODIFY,
|
||||||
|
qmrt_str);
|
||||||
|
return nb_cli_apply_changes(vty, FRR_GMP_INTERFACE_XPATH,
|
||||||
|
FRR_PIM_AF_XPATH_VAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
int gm_process_no_query_max_response_time_cmd(struct vty *vty)
|
||||||
|
{
|
||||||
|
nb_cli_enqueue_change(vty, "./query-max-response-time", NB_OP_DESTROY,
|
||||||
|
NULL);
|
||||||
|
return nb_cli_apply_changes(vty, FRR_GMP_INTERFACE_XPATH,
|
||||||
|
FRR_PIM_AF_XPATH_VAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
int gm_process_last_member_query_count_cmd(struct vty *vty,
|
||||||
|
const char *lmqc_str)
|
||||||
|
{
|
||||||
|
const struct lyd_node *pim_enable_dnode;
|
||||||
|
|
||||||
|
pim_enable_dnode = yang_dnode_getf(vty->candidate_config->dnode,
|
||||||
|
FRR_PIM_ENABLE_XPATH, VTY_CURR_XPATH,
|
||||||
|
FRR_PIM_AF_XPATH_VAL);
|
||||||
|
if (!pim_enable_dnode) {
|
||||||
|
nb_cli_enqueue_change(vty, "./enable", NB_OP_MODIFY, "true");
|
||||||
|
} else {
|
||||||
|
if (!yang_dnode_get_bool(pim_enable_dnode, "."))
|
||||||
|
nb_cli_enqueue_change(vty, "./enable", NB_OP_MODIFY,
|
||||||
|
"true");
|
||||||
|
}
|
||||||
|
|
||||||
|
nb_cli_enqueue_change(vty, "./robustness-variable", NB_OP_MODIFY,
|
||||||
|
lmqc_str);
|
||||||
|
return nb_cli_apply_changes(vty, FRR_GMP_INTERFACE_XPATH,
|
||||||
|
FRR_PIM_AF_XPATH_VAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
int gm_process_no_last_member_query_count_cmd(struct vty *vty)
|
||||||
|
{
|
||||||
|
nb_cli_enqueue_change(vty, "./robustness-variable", NB_OP_DESTROY,
|
||||||
|
NULL);
|
||||||
|
return nb_cli_apply_changes(vty, FRR_GMP_INTERFACE_XPATH,
|
||||||
|
FRR_PIM_AF_XPATH_VAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
int gm_process_last_member_query_interval_cmd(struct vty *vty,
|
||||||
|
const char *lmqi_str)
|
||||||
|
{
|
||||||
|
const struct lyd_node *pim_enable_dnode;
|
||||||
|
|
||||||
|
pim_enable_dnode = yang_dnode_getf(vty->candidate_config->dnode,
|
||||||
|
FRR_PIM_ENABLE_XPATH, VTY_CURR_XPATH,
|
||||||
|
FRR_PIM_AF_XPATH_VAL);
|
||||||
|
if (!pim_enable_dnode) {
|
||||||
|
nb_cli_enqueue_change(vty, "./enable", NB_OP_MODIFY, "true");
|
||||||
|
} else {
|
||||||
|
if (!yang_dnode_get_bool(pim_enable_dnode, "."))
|
||||||
|
nb_cli_enqueue_change(vty, "./enable", NB_OP_MODIFY,
|
||||||
|
"true");
|
||||||
|
}
|
||||||
|
|
||||||
|
nb_cli_enqueue_change(vty, "./last-member-query-interval", NB_OP_MODIFY,
|
||||||
|
lmqi_str);
|
||||||
|
return nb_cli_apply_changes(vty, FRR_GMP_INTERFACE_XPATH,
|
||||||
|
FRR_PIM_AF_XPATH_VAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
int gm_process_no_last_member_query_interval_cmd(struct vty *vty)
|
||||||
|
{
|
||||||
|
nb_cli_enqueue_change(vty, "./last-member-query-interval",
|
||||||
|
NB_OP_DESTROY, NULL);
|
||||||
|
return nb_cli_apply_changes(vty, FRR_GMP_INTERFACE_XPATH,
|
||||||
|
FRR_PIM_AF_XPATH_VAL);
|
||||||
|
}
|
||||||
|
@ -93,6 +93,15 @@ void pim_show_neighbors_single(struct pim_instance *pim, struct vty *vty,
|
|||||||
const char *neighbor, json_object *json);
|
const char *neighbor, json_object *json);
|
||||||
void pim_show_neighbors(struct pim_instance *pim, struct vty *vty,
|
void pim_show_neighbors(struct pim_instance *pim, struct vty *vty,
|
||||||
json_object *json);
|
json_object *json);
|
||||||
|
int gm_process_query_max_response_time_cmd(struct vty *vty,
|
||||||
|
const char *qmrt_str);
|
||||||
|
int gm_process_no_query_max_response_time_cmd(struct vty *vty);
|
||||||
|
int gm_process_last_member_query_count_cmd(struct vty *vty,
|
||||||
|
const char *lmqc_str);
|
||||||
|
int gm_process_no_last_member_query_count_cmd(struct vty *vty);
|
||||||
|
int gm_process_last_member_query_interval_cmd(struct vty *vty,
|
||||||
|
const char *lmqi_str);
|
||||||
|
int gm_process_no_last_member_query_interval_cmd(struct vty *vty);
|
||||||
/*
|
/*
|
||||||
* Special Macro to allow us to get the correct pim_instance
|
* Special Macro to allow us to get the correct pim_instance
|
||||||
*/
|
*/
|
||||||
@ -102,4 +111,12 @@ void pim_show_neighbors(struct pim_instance *pim, struct vty *vty,
|
|||||||
(vrf) ? vrf->info : pim_get_pim_instance(VRF_DEFAULT); \
|
(vrf) ? vrf->info : pim_get_pim_instance(VRF_DEFAULT); \
|
||||||
vrf = (vrf) ? vrf : pim->vrf
|
vrf = (vrf) ? vrf : pim->vrf
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Special Macro to allow us to get the correct pim_instance;
|
||||||
|
*/
|
||||||
|
#define PIM_DECLVAR_CONTEXT(A, B) \
|
||||||
|
struct vrf *A = VTY_GET_CONTEXT(vrf); \
|
||||||
|
struct pim_instance *B = \
|
||||||
|
(vrf) ? vrf->info : pim_get_pim_instance(VRF_DEFAULT); \
|
||||||
|
vrf = (vrf) ? vrf : pim->vrf
|
||||||
#endif /* PIM_CMD_COMMON_H */
|
#endif /* PIM_CMD_COMMON_H */
|
||||||
|
@ -408,7 +408,6 @@ static void igmp_sock_query_interval_reconfig(struct gm_sock *igmp)
|
|||||||
*/
|
*/
|
||||||
igmp_startup_mode_on(igmp);
|
igmp_startup_mode_on(igmp);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static void igmp_sock_query_reschedule(struct gm_sock *igmp)
|
static void igmp_sock_query_reschedule(struct gm_sock *igmp)
|
||||||
{
|
{
|
||||||
@ -438,6 +437,7 @@ static void igmp_sock_query_reschedule(struct gm_sock *igmp)
|
|||||||
assert(igmp->t_other_querier_timer);
|
assert(igmp->t_other_querier_timer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif /* PIM_IPV == 4 */
|
||||||
|
|
||||||
#if PIM_IPV == 4
|
#if PIM_IPV == 4
|
||||||
static void change_query_interval(struct pim_interface *pim_ifp,
|
static void change_query_interval(struct pim_interface *pim_ifp,
|
||||||
@ -455,6 +455,7 @@ static void change_query_interval(struct pim_interface *pim_ifp,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if PIM_IPV == 4
|
||||||
static void change_query_max_response_time(struct pim_interface *pim_ifp,
|
static void change_query_max_response_time(struct pim_interface *pim_ifp,
|
||||||
int query_max_response_time_dsec)
|
int query_max_response_time_dsec)
|
||||||
{
|
{
|
||||||
@ -502,6 +503,7 @@ static void change_query_max_response_time(struct pim_interface *pim_ifp,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
int routing_control_plane_protocols_name_validate(
|
int routing_control_plane_protocols_name_validate(
|
||||||
struct nb_cb_create_args *args)
|
struct nb_cb_create_args *args)
|
||||||
@ -2732,6 +2734,7 @@ int lib_interface_gmp_address_family_query_interval_modify(
|
|||||||
int lib_interface_gmp_address_family_query_max_response_time_modify(
|
int lib_interface_gmp_address_family_query_max_response_time_modify(
|
||||||
struct nb_cb_modify_args *args)
|
struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
|
#if PIM_IPV == 4
|
||||||
struct interface *ifp;
|
struct interface *ifp;
|
||||||
int query_max_response_time_dsec;
|
int query_max_response_time_dsec;
|
||||||
|
|
||||||
@ -2747,6 +2750,10 @@ int lib_interface_gmp_address_family_query_max_response_time_modify(
|
|||||||
change_query_max_response_time(ifp->info,
|
change_query_max_response_time(ifp->info,
|
||||||
query_max_response_time_dsec);
|
query_max_response_time_dsec);
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
/* TBD Depends on MLD data structure changes */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
return NB_OK;
|
return NB_OK;
|
||||||
}
|
}
|
||||||
@ -2757,6 +2764,7 @@ int lib_interface_gmp_address_family_query_max_response_time_modify(
|
|||||||
int lib_interface_gmp_address_family_last_member_query_interval_modify(
|
int lib_interface_gmp_address_family_last_member_query_interval_modify(
|
||||||
struct nb_cb_modify_args *args)
|
struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
|
#if PIM_IPV == 4
|
||||||
struct interface *ifp;
|
struct interface *ifp;
|
||||||
struct pim_interface *pim_ifp;
|
struct pim_interface *pim_ifp;
|
||||||
int last_member_query_interval;
|
int last_member_query_interval;
|
||||||
@ -2776,6 +2784,9 @@ int lib_interface_gmp_address_family_last_member_query_interval_modify(
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
/* TBD Depends on MLD data structure changes */
|
||||||
|
#endif
|
||||||
|
|
||||||
return NB_OK;
|
return NB_OK;
|
||||||
}
|
}
|
||||||
@ -2786,6 +2797,7 @@ int lib_interface_gmp_address_family_last_member_query_interval_modify(
|
|||||||
int lib_interface_gmp_address_family_robustness_variable_modify(
|
int lib_interface_gmp_address_family_robustness_variable_modify(
|
||||||
struct nb_cb_modify_args *args)
|
struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
|
#if PIM_IPV == 4
|
||||||
struct interface *ifp;
|
struct interface *ifp;
|
||||||
struct pim_interface *pim_ifp;
|
struct pim_interface *pim_ifp;
|
||||||
int last_member_query_count;
|
int last_member_query_count;
|
||||||
@ -2804,6 +2816,9 @@ int lib_interface_gmp_address_family_robustness_variable_modify(
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
/* TBD Depends on MLD data structure changes */
|
||||||
|
#endif
|
||||||
|
|
||||||
return NB_OK;
|
return NB_OK;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user