Fork Vasum on GitHub Official Vasum Wiki on Tizen.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
netdev.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Contact: Mateusz Malicki <m.malicki2@samsung.com>
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License
17  */
18 
25 #ifndef SERVER_NETDEV_HPP
26 #define SERVER_NETDEV_HPP
27 
28 #include <string>
29 #include <vector>
30 #include <tuple>
31 #include <sys/socket.h>
32 #include <linux/if_link.h>
33 #include <sys/types.h>
34 
35 namespace vasum {
36 namespace netdev {
37 
38 typedef std::vector<std::tuple<std::string, std::string>> Attrs;
39 
40 void createVeth(const pid_t& nsPid, const std::string& nsDev, const std::string& hostDev);
41 void createMacvlan(const pid_t& nsPid,
42  const std::string& nsDev,
43  const std::string& hostDev,
44  const macvlan_mode& mode);
45 void movePhys(const pid_t& nsPid, const std::string& devId);
46 std::vector<std::string> listNetdev(const pid_t& nsPid = 0);
47 void destroyNetdev(const std::string& netdev, const pid_t pid = 0);
48 
56 void createBridge(const std::string& netdev);
57 
58 Attrs getAttrs(const pid_t nsPid, const std::string& netdev);
59 void setAttrs(const pid_t nsPid, const std::string& netdev, const Attrs& attrs);
60 
64 void deleteIpAddress(const pid_t nsPid, const std::string& netdev, const std::string& ip);
65 
66 } //namespace netdev
67 } //namespace vasum
68 
69 #endif // SERVER_NETDEV_HPP
std::vector< std::string > listNetdev(const pid_t &nsPid)
Definition: netdev.cpp:420
void destroyNetdev(const std::string &netdev, const pid_t pid)
Definition: netdev.cpp:440
void createVeth(const pid_t &nsPid, const std::string &nsDev, const std::string &hostDev)
Definition: netdev.cpp:375
Attrs getAttrs(const pid_t nsPid, const std::string &netdev)
Definition: netdev.cpp:476
void createMacvlan(const pid_t &nsPid, const std::string &nsDev, const std::string &hostDev, const macvlan_mode &mode)
Definition: netdev.cpp:394
void movePhys(const pid_t &nsPid, const std::string &devId)
Definition: netdev.cpp:414
void setAttrs(const pid_t nsPid, const std::string &netdev, const Attrs &attrs)
Definition: netdev.cpp:540
std::vector< std::tuple< std::string, std::string > > Attrs
Definition: netdev.hpp:38
void createBridge(const std::string &netdev)
Create bridge.
Definition: netdev.cpp:454
void deleteIpAddress(const pid_t nsPid, const std::string &netdev, const std::string &ip)
Remove ipv4/ipv6 address from interface.
Definition: netdev.cpp:617