LCOV - code coverage report
Current view: top level - bgp/rtarget - rtarget_route.cc (source / functions) Hit Total Coverage
Test: OpenSDN C/C++ coverage (all TARGET_SET jobs) Lines: 19 23 82.6 %
Date: 2026-10-05 02:12:29 Functions: 6 7 85.7 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
       3             :  */
       4             : 
       5             : #include "bgp/rtarget/rtarget_route.h"
       6             : #include "bgp/rtarget/rtarget_table.h"
       7             : 
       8             : #include <algorithm>
       9             : 
      10             : using std::copy;
      11             : using std::string;
      12             : using std::vector;
      13             : 
      14       16526 : RTargetRoute::RTargetRoute(const RTargetPrefix &prefix)
      15       16526 :     : prefix_(prefix) {
      16       16526 : }
      17             : 
      18      118472 : int RTargetRoute::CompareTo(const Route &rhs) const {
      19      118472 :     const RTargetRoute &rt_rhs = static_cast<const RTargetRoute &>(rhs);
      20      118472 :     return prefix_.CompareTo(rt_rhs.prefix_);
      21             : }
      22             : 
      23        1094 : string RTargetRoute::ToString() const {
      24        1094 :     return prefix_.ToString();
      25             : }
      26             : 
      27           0 : void RTargetRoute::SetKey(const DBRequestKey *reqkey) {
      28           0 :     const RTargetTable::RequestKey *key =
      29             :         static_cast<const RTargetTable::RequestKey *>(reqkey);
      30           0 :     prefix_ = key->prefix;
      31           0 : }
      32             : 
      33        2991 : void RTargetRoute::BuildProtoPrefix(BgpProtoPrefix *prefix,
      34             :                                     const BgpAttr *attr,
      35             :                                     uint32_t label,
      36             :                                     uint32_t l3_label) const {
      37        2991 :     prefix_.BuildProtoPrefix(prefix);
      38        2991 : }
      39             : 
      40        1502 : void RTargetRoute::BuildBgpProtoNextHop(vector<uint8_t> &nh,
      41             :                                         IpAddress nexthop) const {
      42        1502 :     nh.resize(4);
      43        1502 :     const Ip4Address::bytes_type &addr_bytes = nexthop.to_v4().to_bytes();
      44        1502 :     copy(addr_bytes.begin(), addr_bytes.end(), nh.begin());
      45        1502 : }
      46             : 
      47        5938 : DBEntryBase::KeyPtr RTargetRoute::GetDBRequestKey() const {
      48             :     RTargetTable::RequestKey *key =
      49        5938 :         new RTargetTable::RequestKey(GetPrefix(), NULL);
      50        5938 :     return KeyPtr(key);
      51             : }

Generated by: LCOV version 1.14