示例#1
0
文件: base.cpp 项目: AaronTien/NFD
void
Base::onHubConnectSuccess(const nfd::ControlParameters& resp)
{
  std::cerr << "Successfully created face: " << resp << std::endl;

  static const Name TESTBED_PREFIX = "/ndn";
  registerPrefix(TESTBED_PREFIX, resp.getFaceId());

  static const Name LOCALHOP_NFD_PREFIX = "/localhop/nfd";
  registerPrefix(LOCALHOP_NFD_PREFIX, resp.getFaceId());
}
示例#2
0
文件: fib.cpp 项目: cawka/NLSR
void
Fib::refreshEntry(const ndn::Name& name, afterRefreshCallback refreshCb)
{
  std::map<ndn::Name, FibEntry>::iterator it = m_table.find(name);

  if (it == m_table.end()) {
    return;
  }

  FibEntry& entry = it->second;
  NLSR_LOG_DEBUG("Refreshing " << entry.getName() << " Seq Num: " << entry.getSeqNo());

  // Increment sequence number
    entry.setSeqNo(entry.getSeqNo() + 1);

  for (const NextHop& hop : entry) {
    registerPrefix(entry.getName(),
                   ndn::FaceUri(hop.getConnectingFaceUri()),
                   hop.getRouteCostAsAdjustedInteger(),
                   ndn::time::seconds(m_refreshTime + GRACE_PERIOD),
                   ndn::nfd::ROUTE_FLAG_CAPTURE, 0);
  }

  refreshCb(entry);
}
示例#3
0
const RegisteredPrefixId*
Face::registerPrefix(const Name& prefix,
                     const RegisterPrefixSuccessCallback& onSuccess,
                     const RegisterPrefixFailureCallback& onFailure,
                     const Name& identity,
                     uint64_t flags)
{
  security::SigningInfo signingInfo = signingByIdentity(identity);
  return registerPrefix(prefix, onSuccess,
                        onFailure, signingInfo, flags);
}
示例#4
0
 /**
  * This is the same as registerPrefix above except get the commandKeyChain and
  * commandCertificateName directly from face.
  */
 void
 registerPrefix
   (uint64_t registeredPrefixId,
    const ptr_lib::shared_ptr<const Name>& prefixCopy,
    const OnInterestCallback& onInterest,
    const OnRegisterFailed& onRegisterFailed,
    const OnRegisterSuccess& onRegisterSuccess, const ForwardingFlags& flags,
    WireFormat& wireFormat, Face* face)
 {
   registerPrefix
     (registeredPrefixId, prefixCopy, onInterest, onRegisterFailed,
      onRegisterSuccess, flags, wireFormat, *face->getCommandKeyChain(),
      face->getCommandCertificateName(), face);
 }
示例#5
0
文件: face.cpp 项目: susmit85/ndn-cpp
uint64_t
Face::registerPrefix
  (const Name& prefix, const OnInterest& onInterest,
   const OnRegisterFailed& onRegisterFailed,
   const ForwardingFlags& flags, WireFormat& wireFormat)
{
  // Wrap the deprecated OnInterest in an OnInterestCallback.
  // TODO: After we remove the registerPrefix with the deprecated OnInterest,
  // we can remove the explicit cast to OnInterestCallback (needed for boost).
  return registerPrefix
    (prefix,
     (const OnInterestCallback&)bind(&Face::onInterestWrapper, _1, _2, _3, _4, _5, onInterest),
     onRegisterFailed, flags, wireFormat);
}
示例#6
0
const RegisteredPrefixId*
Face::registerPrefix(const Name& prefix,
                     const RegisterPrefixSuccessCallback& onSuccess,
                     const RegisterPrefixFailureCallback& onFailure,
                     const IdentityCertificate& certificate,
                     uint64_t flags)
{
  security::SigningInfo signingInfo;
  if (!certificate.getName().empty()) {
    signingInfo = signingByCertificate(certificate.getName());
  }
  return registerPrefix(prefix, onSuccess,
                        onFailure, signingInfo, flags);
}
示例#7
0
文件: fib.cpp 项目: cawka/NLSR
void
Fib::addNextHopsToFibEntryAndNfd(FibEntry& entry, NexthopList& hopsToAdd)
{
  const ndn::Name& name = entry.getName();

  for (NexthopList::iterator it = hopsToAdd.begin(); it != hopsToAdd.end(); ++it)
  {
    // Add nexthop to FIB entry
    entry.getNexthopList().addNextHop(*it);

    if (isPrefixUpdatable(name)) {
      // Add nexthop to NDN-FIB
      registerPrefix(name, ndn::FaceUri(it->getConnectingFaceUri()),
                     it->getRouteCostAsAdjustedInteger(),
                     ndn::time::seconds(m_refreshTime + GRACE_PERIOD),
                     ndn::nfd::ROUTE_FLAG_CAPTURE, 0);
    }
  }
}
示例#8
0
文件: fib.cpp 项目: cawka/NLSR
void
Fib::onRegistrationFailure(const ndn::nfd::ControlResponse& response,
                           const std::string& message,
                           const ndn::nfd::ControlParameters& parameters,
                           const ndn::FaceUri& faceUri,
                           uint8_t times)
{
  NLSR_LOG_DEBUG(message << ": " << response.getText() << " (code: " << response.getCode() << ")");
  NLSR_LOG_DEBUG("Prefix: " << parameters.getName() << " failed for: " << times);
  if (times < 3) {
    NLSR_LOG_DEBUG("Trying to register again...");
    registerPrefix(parameters.getName(), faceUri,
                   parameters.getCost(),
                   parameters.getExpirationPeriod(),
                   parameters.getFlags(), times+1);
  }
  else {
    NLSR_LOG_DEBUG("Registration trial given up");
  }
}