Merge pull request #1293 from donaldsharp/pim_boundary_oil

Pim boundary oil
This commit is contained in:
Renato Westphal 2017-10-05 13:20:00 -03:00 committed by GitHub
commit 9772d72979
3 changed files with 21 additions and 3 deletions

View File

@ -6480,7 +6480,7 @@ DEFUN(interface_ip_pim_boundary_oil,
"Generic multicast configuration options\n" "Generic multicast configuration options\n"
"Define multicast boundary\n" "Define multicast boundary\n"
"Filter OIL by group using prefix list\n" "Filter OIL by group using prefix list\n"
"Prefix list to filter OIL with") "Prefix list to filter OIL with\n")
{ {
VTY_DECLVAR_CONTEXT(interface, iif); VTY_DECLVAR_CONTEXT(interface, iif);
struct pim_interface *pim_ifp; struct pim_interface *pim_ifp;
@ -6508,7 +6508,7 @@ DEFUN(interface_no_ip_pim_boundary_oil,
"Generic multicast configuration options\n" "Generic multicast configuration options\n"
"Define multicast boundary\n" "Define multicast boundary\n"
"Filter OIL by group using prefix list\n" "Filter OIL by group using prefix list\n"
"Prefix list to filter OIL with") "Prefix list to filter OIL with\n")
{ {
VTY_DECLVAR_CONTEXT(interface, iif); VTY_DECLVAR_CONTEXT(interface, iif);
struct pim_interface *pim_ifp; struct pim_interface *pim_ifp;

View File

@ -362,7 +362,7 @@ int pim_interface_config_write(struct vty *vty)
/* boundary */ /* boundary */
if (pim_ifp->boundary_oil_plist) { if (pim_ifp->boundary_oil_plist) {
vty_out(vty, vty_out(vty,
" ip pim boundary oil %s\n", " ip multicast boundary oil %s\n",
pim_ifp->boundary_oil_plist); pim_ifp->boundary_oil_plist);
++writes; ++writes;
} }

View File

@ -131,6 +131,20 @@ static void config_add_line_uniq(struct list *config, const char *line)
listnode_add_sort(config, XSTRDUP(MTYPE_VTYSH_CONFIG_LINE, line)); listnode_add_sort(config, XSTRDUP(MTYPE_VTYSH_CONFIG_LINE, line));
} }
/*
* I want to explicitly move this command to the end of the line
*/
static void config_add_line_end(struct list *config, const char *line)
{
struct listnode *node;
void *item = XSTRDUP(MTYPE_VTYSH_CONFIG_LINE, line);
listnode_add(config, item);
node = listnode_lookup(config, item);
if (node)
listnode_move_to_tail(config, node);
}
void vtysh_config_parse_line(void *arg, const char *line) void vtysh_config_parse_line(void *arg, const char *line)
{ {
char c; char c;
@ -161,6 +175,10 @@ void vtysh_config_parse_line(void *arg, const char *line)
== 0) { == 0) {
config_add_line(config->line, line); config_add_line(config->line, line);
config->index = LINK_PARAMS_NODE; config->index = LINK_PARAMS_NODE;
} else if (strncmp(line,
" ip multicast boundary",
strlen(" ip multicast boundary")) == 0) {
config_add_line_end(config->line, line);
} else if (config->index == LINK_PARAMS_NODE } else if (config->index == LINK_PARAMS_NODE
&& strncmp(line, " exit-link-params", && strncmp(line, " exit-link-params",
strlen(" exit")) strlen(" exit"))