gre: migrate old MULTIARCH macros to VLIB_NODE_FN
[vpp.git] / extras / vom / vom / gbp_global_cmds.cpp
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 #include "vom/gbp_global_cmds.hpp"
17
18 namespace VOM {
19 namespace gbp_global_cmds {
20 config_cmd::config_cmd(HW::item<bool>& item, uint32_t remote_ep_retention)
21   : rpc_cmd(item)
22   , m_remote_ep_retention(remote_ep_retention)
23 {
24 }
25
26 bool
27 config_cmd::operator==(const config_cmd& other) const
28 {
29   return (m_remote_ep_retention == other.m_remote_ep_retention);
30 }
31
32 rc_t
33 config_cmd::issue(connection& con)
34 {
35   msg_t req(con.ctx(), std::ref(*this));
36
37   auto& payload = req.get_request().get_payload();
38   payload.threshold = m_remote_ep_retention;
39
40   VAPI_CALL(req.execute());
41
42   return (wait());
43 }
44
45 std::string
46 config_cmd::to_string() const
47 {
48   std::ostringstream s;
49   s << "Gbp-global-config: " << m_hw_item.to_string()
50     << " remote_ep_retention:" << m_remote_ep_retention;
51
52   return (s.str());
53 }
54
55 }; // namespace gbp_global_cmds
56 }; // namespace VOM
57
58 /*
59  * fd.io coding-style-patch-verification: ON
60  *
61  * Local Variables:
62  * eval: (c-set-style "mozilla")
63  * End:
64  */