FD.io VPP  v18.04-17-g3a0d853
Vector Packet Processing
igmp.api
Go to the documentation of this file.
1 /*
2  *------------------------------------------------------------------
3  * Copyright (c) 2017 Cisco 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 option version = "1.0.0";
19 
20 /** \brief
21  Used by a 'host' to enable the recption/listening of packets for a specific
22  multicast group
23  @param client_index - opaque cookie to identify the sender
24  @param context - sender context, to match reply w/ request
25  @param enable - if set, enable igmp messages on configuration
26  @param sw_if_index - interface sw index
27  @param saddr - source address
28  @param gaddr - group address
29 */
30 autoreply define igmp_listen
31 {
34 
37  u8 saddr[4];
38  u8 gaddr[4];
39 };
40 
41 /** \brief
42  Used by a 'router' to enable the recption of IGMP packets and the
43  construction of group state for hosts on the link
44  multicast group
45  @param client_index - opaque cookie to identify the sender
46  @param context - sender context, to match reply w/ request
47  @param enable - if set, enable igmp messages on configuration
48  @param sw_if_index - interface sw index
49 */
50 autoreply define igmp_enable_disable
51 {
54 
57 };
58 
59 /** \brief dump (S,G)s from interface
60  @param client_index - opaque cookie to identify the sender
61  @param context - sender context, to match reply w/ request
62  @param sw_if_index - interface sw index
63  @param dump_all - get (S,G)s from all interfaces
64 */
65 define igmp_dump
66 {
69 
72 };
73 
74 /** \brief igmp details
75  @param context - sender context, to match reply w/ request
76  @param sw_if_index - interface sw index
77  @param saddr - source address
78  @param gaddr - group address
79 */
80 define igmp_details
81 {
83 
85  u8 saddr[4];
86  u8 gaddr[4];
87 };
88 
89 /** \brief remove all (S,G)s from an interface
90  @param client_index - opaque cookie to identify the sender
91  @param context - sender context, to match reply w/ request
92  @param sw_if_index - interface sw index
93 */
94 autoreply define igmp_clear_interface
95 {
98 
100 };
101 
102 /** \brief register for igmp events
103  @param client_index - opaque cookie to identify the sender
104  @param context - sender context, to match reply w/ request
105  @param pid - sender's pid
106  @param enable - 1 enable, 0 disable igmp events
107 */
108 autoreply define want_igmp_events
109 {
112 
115 };
116 
118  rpc want_igmp_events returns want_igmp_events_reply
119  events igmp_event;
120 };
121 
122 /** \brief igmp event details
123  @param client_index - opaque cookie to identify the sender
124  @param context - sender context, to match reply w/ request
125  @param sw_if_index - interface sw index
126  @param saddr - source address
127  @param gaddr - group address
128  @param is_join - if set source is joining the group, else leaving
129 */
131 {
133 
135  u8 saddr[4];
136  u8 gaddr[4];
138 };
139 
140 /*
141  * Local Variables:
142  * eval: (c-set-style "gnu")
143  * End:
144  */
option version
Definition: igmp.api:18
service
Definition: igmp.api:117
void igmp_event(igmp_main_t *im, igmp_config_t *config, igmp_sg_t *sg)
Definition: igmp_api.c:292
unsigned int u32
Definition: types.h:88
int igmp_listen(vlib_main_t *vm, u8 enable, u32 sw_if_index, ip46_address_t saddr, ip46_address_t gaddr, u8 cli_api_configured)
Definition: igmp.c:595
unsigned char u8
Definition: types.h:56