/* * \brief Virtual local network. * \author Stefan Kalkowski * \date 2010-08-18 * * A database containing all clients sorted by IP and MAC addresses. */ /* * Copyright (C) 2010-2013 Genode Labs GmbH * * This file is part of the Genode OS framework, which is distributed * under the terms of the GNU General Public License version 2. */ #ifndef _VLAN_H_ #define _VLAN_H_ #include "address_node.h" #include "avl_safe.h" #include "list_safe.h" namespace Net { /* * The Vlan is a database containing all clients * sorted by IP and MAC addresses. */ class Vlan { public: typedef Avl_tree_safe Mac_address_tree; typedef Avl_tree_safe Ipv4_address_tree; typedef List_safe Mac_address_list; private: Mac_address_tree _mac_tree; Mac_address_list _mac_list; Ipv4_address_tree _ip_tree; Vlan() {} public: Mac_address_tree *mac_tree() { return &_mac_tree; } Mac_address_list *mac_list() { return &_mac_list; } Ipv4_address_tree *ip_tree() { return &_ip_tree; } static Vlan *vlan(); }; } #endif /* _VLAN_H_ */