diff options
author | Jakub Grajciar <jgrajcia@cisco.com> | 2017-12-08 16:28:42 +0100 |
---|---|---|
committer | Chris Luke <chris_luke@comcast.com> | 2018-03-19 15:53:19 +0000 |
commit | 7b867a8e491357058d37838091ed67a2e77bce2c (patch) | |
tree | 8f9373e4e41e930d0f20e90305168a1ab80dd714 /src/plugins/igmp/igmp.api | |
parent | 489cc829224407a51ca8d612c92bd78c30eaf660 (diff) |
IGMP plugin
- host mode:
igmp_listen - API to signal that the host has joined an (S,G)
- route mode:
igmp_enable - API to enable the reception of host IGMP messages
igmp_event - API to report the host join/leave from an (S,G)
Change-Id: Id180ec27dee617d33ab3088f5dcf6125d3aa9c8f
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
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: + */ |