]> git.puffer.fish Git - mirror/frr.git/commitdiff
rfp_example: add 'rfp full-table-download' config to support topotest 2934/head
authorLou Berger <lberger@labn.net>
Wed, 29 Aug 2018 15:08:10 +0000 (11:08 -0400)
committerLou Berger <lberger@labn.net>
Wed, 29 Aug 2018 15:08:10 +0000 (11:08 -0400)
Signed-off-by: Lou Berger <lberger@labn.net>
bgpd/rfp-example/librfp/rfp_example.c

index bed952826aa3ac54eb9a90672d0fd4d7fbf14fc9..fe74be682d4f0b5ea51e31036b0242194c1f159e 100644 (file)
@@ -54,6 +54,7 @@ DEFUN (rfp_example_config_value,
                rfi->config_var = value;
        return CMD_SUCCESS;
 }
+
 DEFUN (rfp_holddown_factor,
        rfp_holddown_factor_cmd,
        "rfp holddown-factor (0-4294967295)",
@@ -75,6 +76,33 @@ DEFUN (rfp_holddown_factor,
        return CMD_SUCCESS;
 }
 
+
+DEFUN (rfp_full_table_download,
+       rfp_full_table_download_cmd,
+       "rfp full-table-download <on|off>",
+       RFP_SHOW_STR
+       "RFP full table download support (default=on)\n"
+       "Enable RFP full table download\n"
+       "Disable RFP full table download\n")
+{
+       struct rfp_instance_t *rfi;
+       rfapi_rfp_download_type old;
+
+       rfi = rfapi_get_rfp_start_val(VTY_GET_CONTEXT(bgp)); /* BGP_NODE */
+       if (!rfi) {
+               vty_out(vty, "VNC not configured\n");
+               return CMD_WARNING;
+       }
+       old = rfi->rfapi_config.download_type;
+       if (argv[--argc]->arg[1] == 'n' || argv[argc]->arg[1] == 'N')
+               rfi->rfapi_config.download_type = RFAPI_RFP_DOWNLOAD_FULL;
+       else
+               rfi->rfapi_config.download_type = RFAPI_RFP_DOWNLOAD_PARTIAL;
+       if (old != rfi->rfapi_config.download_type)
+               rfapi_rfp_set_configuration(rfi, &rfi->rfapi_config);
+       return CMD_SUCCESS;
+}
+
 static void rfp_vty_install()
 {
        static int installed = 0;
@@ -84,6 +112,7 @@ static void rfp_vty_install()
        /* example of new cli command */
        install_element(BGP_NODE, &rfp_example_config_value_cmd);
        install_element(BGP_NODE, &rfp_holddown_factor_cmd);
+       install_element(BGP_NODE, &rfp_full_table_download_cmd);
 }
 
 /***********************************************************************
@@ -222,6 +251,10 @@ static int rfp_cfg_write_cb(struct vty *vty, void *rfp_start_val)
                        rfi->rfapi_config.holddown_factor);
                write++;
        }
+       if (rfi->rfapi_config.download_type != RFAPI_RFP_DOWNLOAD_FULL) {
+               vty_out(vty, " rfp full-table-download off\n");
+               write++;
+       }
        return write;
 }