1/*
2 * Copyright (c) 2017, ETH Zurich.
3 * All rights reserved.
4 *
5 * This file is distributed under the terms in the attached LICENSE file.
6 * If you do not find this file, copies can be found by writing to:
7 * ETH Zurich D-INFK, Universitaetsstrasse 6, CH-8092 Zurich. Attn: Systems Group.
8 */
9
10interface net_filter "Network Filter Interface" {
11    typedef enum {PORT_TCP, PORT_UDP, MAC} filter_type;
12
13    rpc install_filter_ip(in filter_type type,
14                          in uint64 qid,
15                          in uint32 src_ip,
16                          in uint32 dst_ip,
17                          in uint16 src_port,
18                          in uint16 dst_port,
19                          out uint64 filter_id);
20
21    rpc install_filter_mac(in uint64 dst_mac,
22                           in uint64 vlan_id,
23                           out errval err,
24                           out uint64 filter_id);
25
26    rpc remove_filter(in filter_type type,
27                      in uint64 filter_id,
28                      out errval err);
29
30};
31
32