LCOV - code coverage report
Current view: top level - zephyr/net - virtual_mgmt.h Coverage Total Hit
Test: new.info Lines: 100.0 % 1 1
Test Date: 2025-09-05 22:20:39

            Line data    Source code
       1            1 : /*
       2              :  * Copyright (c) 2021 Intel Corporation.
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : /**
       8              :  * @file
       9              :  * @brief Virtual Interface Management interface public header
      10              :  */
      11              : 
      12              : #ifndef ZEPHYR_INCLUDE_NET_VIRTUAL_MGMT_H_
      13              : #define ZEPHYR_INCLUDE_NET_VIRTUAL_MGMT_H_
      14              : 
      15              : #include <zephyr/net/virtual.h>
      16              : #include <zephyr/net/net_mgmt.h>
      17              : 
      18              : #ifdef __cplusplus
      19              : extern "C" {
      20              : #endif
      21              : 
      22              : /**
      23              :  * @brief Virtual interface library
      24              :  * @defgroup virtual_mgmt Virtual Interface Library
      25              :  * @since 2.6
      26              :  * @version 0.8.0
      27              :  * @ingroup networking
      28              :  * @{
      29              :  */
      30              : 
      31              : /** @cond INTERNAL_HIDDEN */
      32              : 
      33              : #define NET_VIRTUAL_INTERFACE_LAYER     NET_MGMT_LAYER_L2
      34              : #define NET_VIRTUAL_INTERFACE_CODE      NET_MGMT_LAYER_CODE_VIRTUAL
      35              : #define NET_VIRTUAL_INTERFACE_BASE                                      \
      36              :         (NET_MGMT_IFACE_BIT |                                           \
      37              :          NET_MGMT_LAYER(NET_VIRTUAL_INTERFACE_LAYER) |                  \
      38              :          NET_MGMT_LAYER_CODE(NET_VIRTUAL_INTERFACE_CODE))
      39              : #define NET_VIRTUAL_INTERFACE_EVENT                                     \
      40              :         (NET_VIRTUAL_INTERFACE_BASE | NET_MGMT_EVENT_BIT)
      41              : 
      42              : struct virtual_interface_req_params {
      43              :         sa_family_t family;
      44              :         union {
      45              :                 struct in_addr peer4addr;
      46              :                 struct in6_addr peer6addr;
      47              :                 int mtu;
      48              :                 struct virtual_interface_link_types link_types;
      49              :                 struct {
      50              :                         size_t len;
      51              :                         uint8_t *data;
      52              :                 } private_key;
      53              :                 struct {
      54              :                         size_t len;
      55              :                         uint8_t data[NET_VIRTUAL_MAX_PUBLIC_KEY_LEN];
      56              :                 } public_key;
      57              :         };
      58              : };
      59              : 
      60              : enum net_request_virtual_interface_cmd {
      61              :         NET_REQUEST_VIRTUAL_INTERFACE_CMD_SET_PEER_ADDR = 1,
      62              :         NET_REQUEST_VIRTUAL_INTERFACE_CMD_GET_PEER_ADDR,
      63              :         NET_REQUEST_VIRTUAL_INTERFACE_CMD_SET_MTU,
      64              :         NET_REQUEST_VIRTUAL_INTERFACE_CMD_GET_MTU,
      65              :         NET_REQUEST_VIRTUAL_INTERFACE_CMD_SET_LINK_TYPE,
      66              :         NET_REQUEST_VIRTUAL_INTERFACE_CMD_GET_LINK_TYPE,
      67              :         NET_REQUEST_VIRTUAL_INTERFACE_CMD_SET_PRIVATE_KEY,
      68              :         NET_REQUEST_VIRTUAL_INTERFACE_CMD_GET_PUBLIC_KEY,
      69              : };
      70              : 
      71              : #define NET_REQUEST_VIRTUAL_INTERFACE_SET_PEER_ADDRESS          \
      72              :         (NET_VIRTUAL_INTERFACE_BASE |                           \
      73              :          NET_REQUEST_VIRTUAL_INTERFACE_CMD_SET_PEER_ADDR)
      74              : 
      75              : NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_VIRTUAL_INTERFACE_SET_PEER_ADDRESS);
      76              : 
      77              : #define NET_REQUEST_VIRTUAL_INTERFACE_SET_MTU           \
      78              :         (NET_VIRTUAL_INTERFACE_BASE |                   \
      79              :          NET_REQUEST_VIRTUAL_INTERFACE_CMD_SET_MTU)
      80              : 
      81              : NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_VIRTUAL_INTERFACE_SET_MTU);
      82              : 
      83              : #define NET_REQUEST_VIRTUAL_INTERFACE_SET_LINK_TYPE     \
      84              :         (NET_VIRTUAL_INTERFACE_BASE |                   \
      85              :          NET_REQUEST_VIRTUAL_INTERFACE_CMD_SET_LINK_TYPE)
      86              : 
      87              : NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_VIRTUAL_INTERFACE_SET_LINK_TYPE);
      88              : 
      89              : #define NET_REQUEST_VIRTUAL_INTERFACE_GET_PEER_ADDRESS          \
      90              :         (NET_VIRTUAL_INTERFACE_BASE |                           \
      91              :          NET_REQUEST_VIRTUAL_INTERFACE_CMD_GET_PEER_ADDR)
      92              : 
      93              : NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_VIRTUAL_INTERFACE_GET_PEER_ADDRESS);
      94              : 
      95              : #define NET_REQUEST_VIRTUAL_INTERFACE_GET_MTU           \
      96              :         (NET_VIRTUAL_INTERFACE_BASE |                   \
      97              :          NET_REQUEST_VIRTUAL_INTERFACE_CMD_GET_MTU)
      98              : 
      99              : NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_VIRTUAL_INTERFACE_GET_MTU);
     100              : 
     101              : #define NET_REQUEST_VIRTUAL_INTERFACE_GET_LINK_TYPE     \
     102              :         (NET_VIRTUAL_INTERFACE_BASE |                   \
     103              :          NET_REQUEST_VIRTUAL_INTERFACE_CMD_GET_LINK_TYPE)
     104              : 
     105              : NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_VIRTUAL_INTERFACE_GET_LINK_TYPE);
     106              : 
     107              : #define NET_REQUEST_VIRTUAL_INTERFACE_SET_PRIVATE_KEY           \
     108              :         (NET_VIRTUAL_INTERFACE_BASE |                           \
     109              :          NET_REQUEST_VIRTUAL_INTERFACE_CMD_SET_PRIVATE_KEY)
     110              : 
     111              : NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_VIRTUAL_INTERFACE_SET_PRIVATE_KEY);
     112              : 
     113              : #define NET_REQUEST_VIRTUAL_INTERFACE_GET_PUBLIC_KEY            \
     114              :         (NET_VIRTUAL_INTERFACE_BASE |                           \
     115              :          NET_REQUEST_VIRTUAL_INTERFACE_CMD_GET_PUBLIC_KEY)
     116              : 
     117              : NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_VIRTUAL_INTERFACE_GET_PUBLIC_KEY);
     118              : 
     119              : struct net_if;
     120              : 
     121              : /** @endcond */
     122              : 
     123              : /**
     124              :  * @}
     125              :  */
     126              : 
     127              : #ifdef __cplusplus
     128              : }
     129              : #endif
     130              : 
     131              : #endif /* ZEPHYR_INCLUDE_NET_VIRTUAL_MGMT_H_ */
        

Generated by: LCOV version 2.0-1