LCOV - code coverage report
Current view: top level - plugins/pppoe - pppoe_cp.c (source / functions) Hit Total Coverage
Test: coverage-filtered.info Lines: 1 36 2.8 %
Date: 2023-07-05 22:20:52 Functions: 2 4 50.0 %

          Line data    Source code
       1             : /*
       2             :  *------------------------------------------------------------------
       3             :  * Copyright (c) 2017 Intel and/or its affiliates.
       4             :  * Licensed under the Apache License, Version 2.0 (the "License");
       5             :  * you may not use this file except in compliance with the License.
       6             :  * You may obtain a copy of the License at:
       7             :  *
       8             :  *     http://www.apache.org/licenses/LICENSE-2.0
       9             :  *
      10             :  * Unless required by applicable law or agreed to in writing, software
      11             :  * distributed under the License is distributed on an "AS IS" BASIS,
      12             :  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      13             :  * See the License for the specific language governing permissions and
      14             :  * limitations under the License.
      15             :  *------------------------------------------------------------------
      16             :  */
      17             : 
      18             : #include <pppoe/pppoe.h>
      19             : 
      20             : int
      21           0 : pppoe_add_del_cp (u32 cp_if_index, u8 is_add)
      22             : {
      23           0 :   pppoe_main_t *pem = &pppoe_main;
      24             : 
      25           0 :   if (cp_if_index == 0)
      26             :     {
      27           0 :       return ~0;
      28             :     }
      29             : 
      30           0 :   vnet_feature_enable_disable ("device-input", "pppoe-input",
      31             :                                cp_if_index, is_add, 0, 0);
      32             : 
      33           0 :   if (is_add)
      34             :     {
      35           0 :       pem->cp_if_index = cp_if_index;
      36             :     }
      37             :   else
      38             :     {
      39           0 :       pem->cp_if_index = ~0;
      40             :     }
      41           0 :   return 0;
      42             : }
      43             : 
      44             : static clib_error_t *
      45           0 : pppoe_add_del_cp_command_fn (vlib_main_t * vm,
      46             :                              unformat_input_t * input,
      47             :                              vlib_cli_command_t * cmd)
      48             : {
      49           0 :   unformat_input_t _line_input, *line_input = &_line_input;
      50           0 :   pppoe_main_t *pem = &pppoe_main;
      51           0 :   u8 is_add = 1;
      52           0 :   u8 cp_if_index_set = 0;
      53           0 :   u32 cp_if_index = 0;
      54           0 :   clib_error_t *error = NULL;
      55             : 
      56             :   /* Get a line of input. */
      57           0 :   if (!unformat_user (input, unformat_line_input, line_input))
      58           0 :     return 0;
      59             : 
      60           0 :   while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT)
      61             :     {
      62           0 :       if (unformat (line_input, "del"))
      63             :         {
      64           0 :           is_add = 0;
      65             :         }
      66           0 :       else if (unformat (line_input, "cp-if-index %d", &cp_if_index))
      67           0 :         cp_if_index_set = 1;
      68             :       else
      69             :         {
      70           0 :           error = clib_error_return (0, "parse error: '%U'",
      71             :                                      format_unformat_error, line_input);
      72           0 :           goto done;
      73             :         }
      74             :     }
      75             : 
      76           0 :   if (cp_if_index_set == 0)
      77             :     {
      78           0 :       error = clib_error_return (0, "cp if index not specified");
      79           0 :       goto done;
      80             :     }
      81             : 
      82           0 :   vnet_feature_enable_disable ("device-input", "pppoe-input",
      83             :                                cp_if_index, is_add, 0, 0);
      84             : 
      85           0 :   if (is_add)
      86             :     {
      87           0 :       pem->cp_if_index = cp_if_index;
      88             :     }
      89             :   else
      90             :     {
      91           0 :       pem->cp_if_index = ~0;
      92             :     }
      93             : 
      94           0 : done:
      95           0 :   unformat_free (line_input);
      96             : 
      97           0 :   return error;
      98             : }
      99             : 
     100             : /* *INDENT-OFF* */
     101       46069 : VLIB_CLI_COMMAND (create_pppoe_cp_cmd, static) =
     102             : {
     103             :     .path = "create pppoe cp",
     104             :     .short_help = "create pppoe cp-if-index <intfc> [del]",
     105             :     .function = pppoe_add_del_cp_command_fn,
     106             : };
     107             : /* *INDENT-ON* */
     108             : 
     109             : /*
     110             :  * fd.io coding-style-patch-verification: ON
     111             :  *
     112             :  * Local Variables:
     113             :  * eval: (c-set-style "gnu")
     114             :  * End:
     115             :  */

Generated by: LCOV version 1.14