LCOV - code coverage report
Current view: top level - vnsw/agent/services/multicast/grpmgmt - gmpp_private.h (source / functions) Hit Total Coverage
Test: OpenSDN C/C++ coverage (all TARGET_SET jobs) Lines: 1 1 100.0 %
Date: 2026-08-03 02:19:58 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* $Id: gmpp_private.h 346474 2009-11-14 10:18:58Z ssiano $
       2             :  *
       3             :  * gmpp_private.h - Private definitions for GMP generic packet handling support
       4             :  *
       5             :  * Dave Katz, March 2008
       6             :  *
       7             :  * Copyright (c) 2008, Juniper Networks, Inc.
       8             :  * All rights reserved.
       9             :  */
      10             : 
      11             : #ifndef __GMPP_PRIVATE_H__
      12             : #define __GMPP_PRIVATE_H__
      13             : 
      14             : /*
      15             :  * Context block
      16             :  *
      17             :  * There is one of these, statically allocated, for each client role
      18             :  * (host/router.)  It tracks all necessary state for each client.
      19             :  */
      20             : typedef struct gmpp_context_ {
      21             :     void *ctx_client_context;        /* Client's context */
      22             :     gmp_xmit_callback_func ctx_xmit_cb;    /* Transmit callback */
      23             :     gmp_xmit_peek_callback_func ctx_xmit_peek_cb; /* Transmit peek callback */
      24             :     gmp_rcv_peek_callback_func ctx_rcv_peek_cb;    /* Receive peek callback */
      25             :     gmp_rcv_callback_func ctx_rcv_cb;    /* Receive callback */
      26             :     gmp_group_done_callback_func ctx_group_cb; /* Group-done callback */
      27             :     gmp_packet_free_callback_func ctx_pkt_free_cb; /* Free-packet callback */
      28             :     boolean ctx_proto_active[GMP_NUM_PROTOS]; /* True if protocol is active */
      29             : } gmpp_context;
      30             : 
      31             : 
      32             : /*
      33             :  * I/O context block
      34             :  *
      35             :  * There is one block per role, per protocol.  It defines the transmit-ready
      36             :  * callback used to drive packet transmission.
      37             :  *
      38             :  * Normally, the same callback is used for all interfaces, but a tree of
      39             :  * exceptions exists for specific interfaces needing a different callback.
      40             :  */
      41             : typedef struct gmpp_io_context_ {
      42             :     gmpp_xmit_ready_func io_ctx_xmitready_cb; /* Transmit-ready callback */
      43             :     gmpx_patroot *io_ctx_exceptions;    /* Tree of exception interfaces */
      44             : } gmpp_io_context;
      45             : 
      46             : typedef struct gmpp_io_exception_ {
      47             :     gmpx_patnode io_ctx_node;        /* Node on context tree */
      48             :     gmpx_intf_id io_ctx_intf;        /* Interface ID  */
      49             :     gmpp_xmit_ready_func io_ctx_alt_cb;    /* Callback for this interface */
      50             : } gmpp_io_exception;
      51             : 
      52        2627 : GMPX_PATNODE_TO_STRUCT(gmpp_patnode_to_io_ex, gmpp_io_exception, io_ctx_node);
      53             : 
      54             : #endif /* __GMPP_PRIVATE_H__ */

Generated by: LCOV version 1.14