LCOV - code coverage report
Current view: top level - vnsw/agent/kstate - kstate_handler.cc (source / functions) Hit Total Coverage
Test: OpenSDN C/C++ coverage (all TARGET_SET jobs) Lines: 0 165 0.0 %
Date: 2026-06-18 01:51:13 Functions: 0 15 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
       3             :  */
       4             : 
       5             : #include "kstate.h"
       6             : #include "interface_kstate.h"
       7             : #include "route_kstate.h"
       8             : #include "nh_kstate.h"
       9             : #include "mpls_kstate.h"
      10             : #include "flow_kstate.h"
      11             : #include "mirror_kstate.h"
      12             : #include "vxlan_kstate.h"
      13             : #include "vrf_assign_kstate.h"
      14             : #include "vrf_stats_kstate.h"
      15             : #include "drop_stats_kstate.h"
      16             : #include "forwarding_class_kstate.h"
      17             : #include "qos_config_kstate.h"
      18             : #include "vrf_kstate.h"
      19             : 
      20           0 : void KInterfaceReq::HandleRequest() const {
      21           0 :     vr_interface_req req;
      22           0 :     KInterfaceResp *resp = new KInterfaceResp();
      23           0 :     resp->set_context(context());
      24             : 
      25           0 :     InterfaceKState *kstate = new InterfaceKState(resp, context(), req,
      26           0 :                                                   get_if_id());
      27           0 :     kstate->EncodeAndSend(req);
      28           0 : }
      29             : 
      30           0 : void KRouteReq::HandleRequest() const {
      31           0 :     vr_route_req req;
      32             :     int prefix_size, family_id;
      33           0 :     std::string family = get_family();
      34             : 
      35           0 :     if(family == "inet6") {
      36           0 :         prefix_size = 16;
      37           0 :         family_id = AF_INET6;
      38           0 :     } else if(family == "bridge") {
      39           0 :         prefix_size = 6;
      40           0 :         family_id = AF_BRIDGE;
      41           0 :     } else if(family == "inet") {
      42           0 :         prefix_size = 4;
      43           0 :         family_id = AF_INET;
      44             :     } else {
      45           0 :         std::string msg("Allowed options for family are inet, inet6, bridge");
      46           0 :         ErrResp *resp = new ErrResp();
      47           0 :         resp->set_resp(msg);
      48           0 :         resp->set_context(context());
      49           0 :         resp->Response();
      50           0 :         return;
      51           0 :     }
      52             : 
      53           0 :     std::vector<int8_t> marker(prefix_size, 0);
      54           0 :     if(family_id == AF_BRIDGE) {
      55           0 :         req.set_rtr_mac(marker);
      56             :     } else {
      57             :         // rtr_prefix needs to be initialized
      58           0 :         req.set_rtr_prefix(marker);
      59           0 :         req.set_rtr_marker_plen(0);
      60             :     }
      61           0 :     req.set_rtr_marker(marker);
      62           0 :     KRouteResp *resp = new KRouteResp();
      63           0 :     resp->set_context(context());
      64             : 
      65           0 :     RouteKState *kstate = new RouteKState(resp, context(), req, get_vrf_id(), family_id, sandesh_op::DUMP, prefix_size);
      66           0 :     kstate->EncodeAndSend(req);
      67           0 : }
      68             : 
      69           0 : void KRouteGetReq::HandleRequest() const {
      70           0 :     vr_route_req req;
      71             :     int family_id, prefix_size;
      72           0 :     boost::system::error_code ec;
      73           0 :     IpAddress addr(IpAddress::from_string(get_prefix(), ec));
      74             : 
      75           0 :     if(addr.is_v4()) {
      76           0 :         family_id = AF_INET;
      77           0 :         prefix_size = 4;
      78           0 :         Ip4Address::bytes_type bytes = addr.to_v4().to_bytes();
      79           0 :         std::vector<int8_t> rtr_prefix(bytes.begin(), bytes.end());
      80           0 :         req.set_rtr_prefix(rtr_prefix);
      81           0 :     } else if(addr.is_v6()) {
      82           0 :         family_id = AF_INET6;
      83           0 :         prefix_size = 16;
      84           0 :         Ip6Address::bytes_type bytes = addr.to_v6().to_bytes();
      85           0 :         std::vector<int8_t> rtr_prefix(bytes.begin(), bytes.end());
      86           0 :         req.set_rtr_prefix(rtr_prefix);
      87           0 :     } else {
      88           0 :         std::string msg("Allowed options for family are inet, inet6");
      89           0 :         ErrResp *resp = new ErrResp();
      90           0 :         resp->set_resp(msg);
      91           0 :         resp->set_context(context());
      92           0 :         resp->Response();
      93           0 :         return;
      94           0 :     }
      95           0 :     std::vector<int8_t> marker(prefix_size, 0);
      96             :     // rtr_prefix needs to be initialized
      97           0 :     req.set_rtr_marker(marker);
      98           0 :     req.set_rtr_marker_plen(0);
      99           0 :     req.set_rtr_prefix_len(get_prefix_len());
     100           0 :     KRouteResp *resp = new KRouteResp();
     101           0 :     resp->set_context(context());
     102             : 
     103           0 :     RouteKState *kstate = new RouteKState(resp, context(), req, get_vrf_id(), family_id, sandesh_op::GET, 0);
     104           0 :     kstate->EncodeAndSend(req);
     105           0 : }
     106             : 
     107           0 : void KNHReq::HandleRequest() const {
     108           0 :     vr_nexthop_req req;
     109           0 :     KNHResp *resp = new KNHResp();
     110           0 :     resp->set_context(context());
     111             : 
     112           0 :     NHKState *kstate = new NHKState(resp, context(), req, get_nh_id());
     113           0 :     kstate->EncodeAndSend(req);
     114           0 : }
     115             : 
     116           0 : void KMplsReq::HandleRequest() const {
     117           0 :     vr_mpls_req req;
     118           0 :     KMplsResp *resp = new KMplsResp();
     119           0 :     resp->set_context(context());
     120             : 
     121           0 :     MplsKState *kstate = new MplsKState(resp, context(), req, get_mpls_label());
     122           0 :     kstate->EncodeAndSend(req);
     123           0 : }
     124             : 
     125           0 : void NextKFlowReq::HandleRequest() const {
     126           0 :     FlowKState *task = new FlowKState(Agent::GetInstance(), context(),
     127           0 :                                       get_flow_handle());
     128           0 :     vector<string> tokens;
     129           0 :     boost::split(tokens, get_flow_handle(), boost::is_any_of(" "));
     130           0 :     if (tokens.size() == 2) {
     131           0 :         task->set_evicted_flag(true);
     132             :     }
     133           0 :     TaskScheduler *scheduler = TaskScheduler::GetInstance();
     134           0 :     scheduler->Enqueue(task);
     135           0 : }
     136             : 
     137           0 : void KFlowReq::HandleRequest() const {
     138           0 :     FlowKState *task = new FlowKState(Agent::GetInstance(), context(),
     139           0 :                                       get_flow_idx());
     140           0 :     task->set_evicted_flag(get_show_evicted());
     141           0 :     TaskScheduler *scheduler = TaskScheduler::GetInstance();
     142           0 :     scheduler->Enqueue(task);
     143           0 : }
     144             : 
     145           0 : void KMirrorReq::HandleRequest() const {
     146           0 :     vr_mirror_req req;
     147           0 :     KMirrorResp *resp = new KMirrorResp();
     148           0 :     resp->set_context(context());
     149             : 
     150           0 :     MirrorKState *kstate = new MirrorKState(resp, context(), req,
     151           0 :                                             get_mirror_id());
     152           0 :     kstate->EncodeAndSend(req);
     153           0 : }
     154             : 
     155           0 : void KVrfAssignReq::HandleRequest() const {
     156           0 :     vr_vrf_assign_req req;
     157           0 :     KVrfAssignResp *resp = new KVrfAssignResp();
     158           0 :     resp->set_context(context());
     159             : 
     160           0 :     VrfAssignKState *kstate = new VrfAssignKState(resp, context(), req,
     161           0 :                                                   get_vif_index());
     162           0 :     kstate->EncodeAndSend(req);
     163           0 : }
     164             : 
     165           0 : void KVrfReq::HandleRequest() const {
     166           0 :     vr_vrf_req req;
     167           0 :     KVrfResp *resp = new KVrfResp();
     168           0 :     resp->set_context(context());
     169             : 
     170           0 :     VrfKState *kstate = new VrfKState(resp, context(), req,
     171           0 :                                           get_vrf_idx());
     172           0 :     kstate->EncodeAndSend(req);
     173           0 : }
     174             : 
     175           0 : void KVrfStatsReq::HandleRequest() const {
     176           0 :     vr_vrf_stats_req req;
     177           0 :     KVrfStatsResp *resp = new KVrfStatsResp();
     178           0 :     resp->set_context(context());
     179             : 
     180           0 :     VrfStatsKState *kstate = new VrfStatsKState(resp, context(), req,
     181           0 :                                                 get_vrf_index());
     182           0 :     kstate->EncodeAndSend(req);
     183           0 : }
     184             : 
     185           0 : void KDropStatsReq::HandleRequest() const {
     186           0 :     vr_drop_stats_req req;
     187           0 :     KDropStatsResp *resp = new KDropStatsResp();
     188           0 :     resp->set_context(context());
     189             : 
     190           0 :     DropStatsKState *kstate = new DropStatsKState(resp, context(), req);
     191           0 :     kstate->EncodeAndSend(req);
     192           0 : }
     193             : 
     194           0 : void KVxLanReq::HandleRequest() const {
     195           0 :     vr_vxlan_req req;
     196           0 :     KVxLanResp *resp = new KVxLanResp();
     197           0 :     resp->set_context(context());
     198             : 
     199           0 :     VxLanKState *kstate = new VxLanKState(resp, context(), req,
     200           0 :                                           get_vxlan_label());
     201           0 :     kstate->EncodeAndSend(req);
     202           0 : }
     203             : 
     204           0 : void KQosConfigReq::HandleRequest() const {
     205             : 
     206           0 :     vr_qos_map_req req;
     207           0 :     KQosConfigResp *resp = new KQosConfigResp();
     208           0 :     resp->set_context(context());
     209             : 
     210           0 :     QosConfigKState *kstate = new QosConfigKState(resp, context(), req,
     211           0 :                                                   get_index());
     212           0 :     kstate->EncodeAndSend(req);
     213           0 : }
     214             : 
     215           0 : void KForwardingClassReq::HandleRequest() const {
     216           0 :     vr_fc_map_req req;
     217           0 :     KForwardingClassResp *resp = new KForwardingClassResp();
     218           0 :     resp->set_context(context());
     219             : 
     220           0 :     ForwardingClassKState *kstate = new ForwardingClassKState(resp, context(),
     221             :                                                   req,
     222           0 :                                                   get_index());
     223           0 :     kstate->EncodeAndSend(req);
     224           0 : }

Generated by: LCOV version 1.14