Skip to content

Commit acbc8aa

Browse files
committed
encoding: Rollback to original Nack encoding.
Fix: #9
1 parent e3aee65 commit acbc8aa

2 files changed

Lines changed: 9 additions & 37 deletions

File tree

src/ndn/encoding/ndnlp_v2.py

Lines changed: 1 addition & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -67,18 +67,6 @@ class LpPacket(TlvModel):
6767
lp_packet = ModelField(LpTypeNumber.LP_PACKET, LpPacketValue)
6868

6969

70-
class NackInterestValue(TlvModel):
71-
name = NameField()
72-
can_be_prefix = BoolField(TypeNumber.CAN_BE_PREFIX, default=False)
73-
must_be_fresh = BoolField(TypeNumber.MUST_BE_FRESH, default=False)
74-
forwarding_hint = ModelField(TypeNumber.FORWARDING_HINT, Links)
75-
nonce = UintField(TypeNumber.NONCE, fixed_len=4)
76-
77-
78-
class NackInterestPacket(TlvModel):
79-
nack_interest = ModelField(TypeNumber.INTEREST, NackInterestValue)
80-
81-
8270
def parse_network_nack(wire: BinaryStr, with_tl: bool = True) -> (Optional[int], Optional[BinaryStr]):
8371
if with_tl:
8472
wire = parse_and_check_tl(wire, LpTypeNumber.LP_PACKET)
@@ -91,24 +79,7 @@ def parse_network_nack(wire: BinaryStr, with_tl: bool = True) -> (Optional[int],
9179
return None, None
9280

9381

94-
def make_network_nack(name: NonStrictName, interest_param: InterestParam, nack_reason: int) -> VarBinaryStr:
95-
nack_interest = NackInterestPacket()
96-
nack_interest.nack_interest = NackInterestValue()
97-
nack_interest.nack_interest.name = name
98-
nack_interest.nack_interest.can_be_prefix = interest_param.can_be_prefix
99-
nack_interest.nack_interest.must_be_fresh = interest_param.must_be_fresh
100-
nack_interest.nack_interest.nonce = interest_param.nonce
101-
102-
if interest_param.forwarding_hint:
103-
nack_interest.nack_interest.forwarding_hint = Links()
104-
for preference, delegation in interest_param.forwarding_hint:
105-
cur = Delegation()
106-
cur.preference = preference
107-
cur.delegation = delegation
108-
nack_interest.nack_interest.forwarding_hint.delegations.append(cur)
109-
110-
encoded_interest = nack_interest.encode()
111-
82+
def make_network_nack(encoded_interest: BinaryStr, nack_reason: int) -> VarBinaryStr:
11283
lp_packet = LpPacket()
11384
lp_packet.lp_packet = LpPacketValue()
11485
lp_packet.lp_packet.nack = NetworkNack()

tests/encoding/ndnlp_v2_test.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
# See the License for the specific language governing permissions and
1616
# limitations under the License.
1717
# -----------------------------------------------------------------------------
18-
from ndn.encoding import parse_network_nack, parse_interest, make_network_nack, NackReason, Name, InterestParam
18+
from ndn.encoding import parse_network_nack, parse_interest, make_network_nack, make_interest,\
19+
NackReason, Name, InterestParam
1920

2021

2122
class TestNetworkNack:
@@ -33,9 +34,9 @@ def test1():
3334

3435
@staticmethod
3536
def test2():
36-
lp_packet = make_network_nack('/localhost/nfd/faces/events',
37-
InterestParam(must_be_fresh=True, can_be_prefix=True),
38-
NackReason.NO_ROUTE)
39-
assert lp_packet == (b"\x64\x32\xfd\x03\x20\x05\xfd\x03\x21\x01\x96"
40-
b"\x50\x27\x05\x25\x07\x1f\x08\tlocalhost\x08\x03nfd\x08\x05faces\x08\x06events"
41-
b"\x21\x00\x12\x00")
37+
interest = make_interest('/localhost/nfd/faces/events',
38+
InterestParam(must_be_fresh=True, can_be_prefix=True))
39+
lp_packet = make_network_nack(interest, NackReason.NO_ROUTE)
40+
assert lp_packet == (b"\x64\x36\xfd\x03\x20\x05\xfd\x03\x21\x01\x96"
41+
b"\x50\x2b\x05\x29\x07\x1f\x08\tlocalhost\x08\x03nfd\x08\x05faces\x08\x06events"
42+
b"\x21\x00\x12\x00\x0c\x02\x0f\xa0")

0 commit comments

Comments
 (0)