FD.io VPP  v20.01-48-g3e0dafb74
Vector Packet Processing
bridge_domain_cmds.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2017 Cisco and/or its affiliates.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at:
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef __VOM_BRIDGE_DOMAIN_CMDS_H__
17 #define __VOM_BRIDGE_DOMAIN_CMDS_H__
18 
19 #include "vom/bridge_domain.hpp"
20 #include "vom/dump_cmd.hpp"
21 #include "vom/rpc_cmd.hpp"
22 
23 #include <vapi/l2.api.vapi.hpp>
24 
25 namespace VOM {
26 namespace bridge_domain_cmds {
27 /**
28  * A command class that creates an Bridge-Domain
29  */
31  : public rpc_cmd<HW::item<uint32_t>, vapi::Bridge_domain_add_del>
32 {
33 public:
34  /**
35  * Constructor
36  */
38  const bridge_domain::learning_mode_t& lmode,
39  const bridge_domain::arp_term_mode_t& amode,
40  const bridge_domain::arp_ufwd_mode_t& aumode,
41  const bridge_domain::flood_mode_t& fmode,
42  const bridge_domain::uu_flood_mode_t& uufmode,
43  const bridge_domain::mac_age_mode_t& mmode);
44 
45  /**
46  * Issue the command to VPP/HW
47  */
48  rc_t issue(connection& con);
49  /**
50  * convert to string format for debug purposes
51  */
52  std::string to_string() const;
53 
54  /**
55  * Comparison operator - only used for UT
56  */
57  bool operator==(const create_cmd& i) const;
58 
59 private:
60  /**
61  * the learning mode for the bridge
62  */
63  bridge_domain::learning_mode_t m_learning_mode;
64  /**
65  * the learning mode for the bridge
66  */
67  bridge_domain::arp_term_mode_t m_arp_term_mode;
68  /**
69  * the learning mode for the bridge
70  */
71  bridge_domain::arp_ufwd_mode_t m_arp_ufwd_mode;
72  /**
73  * the flood mode for the bridge
74  */
75  bridge_domain::flood_mode_t m_flood_mode;
76  /**
77  * the unknown unicast flood mode for the bridge
78  */
79  bridge_domain::uu_flood_mode_t m_uu_flood_mode;
80  /**
81  * the flood mode for the bridge
82  */
83  bridge_domain::mac_age_mode_t m_mac_age_mode;
84 };
85 
86 /**
87  * A cmd class that Delete an Bridge-Domain
88  */
90  : public rpc_cmd<HW::item<uint32_t>, vapi::Bridge_domain_add_del>
91 {
92 public:
93  /**
94  * Constructor
95  */
97 
98  /**
99  * Issue the command to VPP/HW
100  */
101  rc_t issue(connection& con);
102  /**
103  * convert to string format for debug purposes
104  */
105  std::string to_string() const;
106 
107  /**
108  * Comparison operator - only used for UT
109  */
110  bool operator==(const delete_cmd& i) const;
111 };
112 
113 /**
114  * A cmd class that Dumps all the bridge domains
115  */
116 class dump_cmd : public VOM::dump_cmd<vapi::Bridge_domain_dump>
117 {
118 public:
119  /**
120  * Constructor
121  */
122  dump_cmd();
123  dump_cmd(const dump_cmd& d);
124 
125  /**
126  * Issue the command to VPP/HW
127  */
128  rc_t issue(connection& con);
129  /**
130  * convert to string format for debug purposes
131  */
132  std::string to_string() const;
133 
134  /**
135  * Comparison operator - only used for UT
136  */
137  bool operator==(const dump_cmd& i) const;
138 
139 private:
140  /**
141  * HW reutrn code
142  */
144 };
145 };
146 };
147 
148 /*
149  * fd.io coding-style-patch-verification: ON
150  *
151  * Local Variables:
152  * eval: (c-set-style "mozilla")
153  * End:
154  */
155 
156 #endif
Bridge Domain MAC aging mode.
rc_t issue(connection &con)
Issue the command to VPP/HW.
int i
Error codes that VPP will return during a HW write.
Definition: types.hpp:89
A representation of the connection to VPP.
Definition: connection.hpp:33
Bridge Domain Unknown Unicast Flood mode.
bool operator==(const create_cmd &i) const
Comparison operator - only used for UT.
A cmd class that Dumps all the bridge domains.
A base class for all RPC commands to VPP.
Definition: rpc_cmd.hpp:40
std::string to_string() const
convert to string format for debug purposes
Bridge Domain ARP termination mode.
Bridge Domain Learning mode.
Bridge Domain ARP Unicast Forward mode.
Bridge Domain flood mode.
The VPP Object Model (VOM) library.
Definition: acl_binding.cpp:19
A command class that creates an Bridge-Domain.
A base class for VPP dump commands.
Definition: dump_cmd.hpp:43
A cmd class that Delete an Bridge-Domain.
create_cmd(HW::item< uint32_t > &item, const bridge_domain::learning_mode_t &lmode, const bridge_domain::arp_term_mode_t &amode, const bridge_domain::arp_ufwd_mode_t &aumode, const bridge_domain::flood_mode_t &fmode, const bridge_domain::uu_flood_mode_t &uufmode, const bridge_domain::mac_age_mode_t &mmode)
Constructor.
HW::item< uint32_t > & item()
return the HW item the command updates
Definition: rpc_cmd.hpp:66