diff options
Diffstat (limited to 'src/plugins/igmp/igmp.api')
-rw-r--r-- | src/plugins/igmp/igmp.api | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/src/plugins/igmp/igmp.api b/src/plugins/igmp/igmp.api new file mode 100644 index 00000000000..1533d666a1c --- /dev/null +++ b/src/plugins/igmp/igmp.api @@ -0,0 +1,144 @@ +/* + *------------------------------------------------------------------ + * Copyright (c) 2017 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *------------------------------------------------------------------ + */ + +option version = "1.0.0"; + +/** \brief + Used by a 'host' to enable the recption/listening of packets for a specific + multicast group + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param enable - if set, enable igmp messages on configuration + @param sw_if_index - interface sw index + @param saddr - source address + @param gaddr - group address +*/ +autoreply define igmp_listen +{ + u32 client_index; + u32 context; + + u8 enable; + u32 sw_if_index; + u8 saddr[4]; + u8 gaddr[4]; +}; + +/** \brief + Used by a 'router' to enable the recption of IGMP packets and the + construction of group state for hosts on the link + multicast group + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param enable - if set, enable igmp messages on configuration + @param sw_if_index - interface sw index +*/ +autoreply define igmp_enable_disable +{ + u32 client_index; + u32 context; + + u8 enable; + u32 sw_if_index; +}; + +/** \brief dump (S,G)s from interface + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param sw_if_index - interface sw index + @param dump_all - get (S,G)s from all interfaces +*/ +define igmp_dump +{ + u32 client_index; + u32 context; + + u32 sw_if_index; + u8 dump_all; +}; + +/** \brief igmp details + @param context - sender context, to match reply w/ request + @param sw_if_index - interface sw index + @param saddr - source address + @param gaddr - group address +*/ +define igmp_details +{ + u32 context; + + u32 sw_if_index; + u8 saddr[4]; + u8 gaddr[4]; +}; + +/** \brief remove all (S,G)s from an interface + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param sw_if_index - interface sw index +*/ +autoreply define igmp_clear_interface +{ + u32 client_index; + u32 context; + + u32 sw_if_index; +}; + +/** \brief register for igmp events + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param pid - sender's pid + @param enable - 1 enable, 0 disable igmp events +*/ +autoreply define want_igmp_events +{ + u32 client_index; + u32 context; + + u32 enable; + u32 pid; +}; + +service { + rpc want_igmp_events returns want_igmp_events_reply + events igmp_event; +}; + +/** \brief igmp event details + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param sw_if_index - interface sw index + @param saddr - source address + @param gaddr - group address + @param is_join - if set source is joining the group, else leaving +*/ +define igmp_event +{ + u32 context; + + u32 sw_if_index; + u8 saddr[4]; + u8 gaddr[4]; + u8 is_join; +}; + +/* + * Local Variables: + * eval: (c-set-style "gnu") + * End: + */ |