A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
sixlowpan-nd-prefix.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2015 Università di Firenze, Italy
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 *
7 *
8 * Author: Alessio Bonadio <alessio.bonadio@gmail.com>
9 * Tommaso Pecorella <tommaso.pecorella@unifi.it>
10 * Adnan Rashid <adnanrashidpk@gmail.com>
11 */
12
13#ifndef SIXLOW_ND_PREFIX_H
14#define SIXLOW_ND_PREFIX_H
15
16#include "ns3/ipv6-address.h"
17#include "ns3/nstime.h"
18#include "ns3/output-stream-wrapper.h"
19#include "ns3/simple-ref-count.h"
20
21#include <stdint.h>
22
23namespace ns3
24{
25
26/**
27 * @ingroup sixlowpan
28 * @brief Router prefix container for 6LoWPAN ND.
29 */
30class SixLowPanNdPrefix : public SimpleRefCount<SixLowPanNdPrefix>
31{
32 public:
33 /**
34 * @brief Constructor.
35 */
37
38 /**
39 * @brief Constructor.
40 * @param prefix network prefix advertised
41 * @param prefixLen prefix length ( 0 < x <= 128)
42 * @param prefTime preferred life time (default 7 days)
43 * @param validTime valid life time (default 30 days)
44 */
45 SixLowPanNdPrefix(Ipv6Address prefix, uint8_t prefixLen, Time prefTime, Time validTime);
46
47 /**
48 * @brief Destructor.
49 */
51
52 /**
53 * @brief Get network prefix.
54 * @return network prefix
55 */
56 Ipv6Address GetPrefix() const;
57
58 /**
59 * @brief Set network prefix.
60 * @param prefix network prefix
61 */
62 void SetPrefix(Ipv6Address prefix);
63
64 /**
65 * @brief Get prefix length.
66 * @return prefix length
67 */
68 uint8_t GetPrefixLength() const;
69
70 /**
71 * @brief Set prefix length.
72 * @param prefixLen prefix length
73 */
74 void SetPrefixLength(uint8_t prefixLen);
75
76 /**
77 * @brief Get preferred lifetime.
78 * @return lifetime
79 */
81
82 /**
83 * @brief Set preferred lifetime.
84 * @param prefTime lifetime
85 */
86 void SetPreferredLifeTime(Time prefTime);
87
88 /**
89 * @brief Get valid lifetime.
90 * @return lifetime
91 */
92 Time GetValidLifeTime() const;
93
94 /**
95 * @brief Set valid lifetime.
96 * @param validTime lifetime
97 */
98 void SetValidLifeTime(Time validTime);
99
100 /**
101 * @brief Print the prefix
102 * @param stream the ostream the prefix is printed to
103 */
105
106 private:
107 /**
108 * @brief Network prefix.
109 */
111
112 /**
113 * @brief Prefix length.
114 */
116
117 /**
118 * @brief Preferred time.
119 */
121
122 /**
123 * @brief Valid time.
124 */
126};
127
128} /* namespace ns3 */
129
130#endif /* SIXLOW_ND_PREFIX_H */
Describes an IPv6 address.
Smart pointer class similar to boost::intrusive_ptr.
Definition ptr.h:70
Ipv6Address GetPrefix() const
Get network prefix.
void SetValidLifeTime(Time validTime)
Set valid lifetime.
void SetPrefix(Ipv6Address prefix)
Set network prefix.
void SetPrefixLength(uint8_t prefixLen)
Set prefix length.
Time m_preferredLifeTime
Preferred time.
uint8_t m_prefixLength
Prefix length.
void SetPreferredLifeTime(Time prefTime)
Set preferred lifetime.
Ipv6Address m_prefix
Network prefix.
Time GetValidLifeTime() const
Get valid lifetime.
Time GetPreferredLifeTime() const
Get preferred lifetime.
uint8_t GetPrefixLength() const
Get prefix length.
void PrintPrefix(Ptr< OutputStreamWrapper > stream)
Print the prefix.
Simulation virtual time values and global simulation resolution.
Definition nstime.h:95
Every class exported by the ns3 library is enclosed in the ns3 namespace.