Skip to content

Commit fda00b8

Browse files
add datalink trait for ipv6
1 parent 7a0c6d3 commit fda00b8

24 files changed

+275
-273
lines changed

core/src/packets/icmp/v6/echo_reply.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ struct EchoReplyBody {
218218
mod tests {
219219
use super::*;
220220
use crate::packets::ethernet::Ethernet;
221-
use crate::packets::ip::v6::Ipv6;
221+
use crate::packets::ip::v6::Ip6;
222222
use crate::packets::Mbuf;
223223

224224
#[test]
@@ -230,8 +230,8 @@ mod tests {
230230
fn push_and_set_echo_reply() {
231231
let packet = Mbuf::new().unwrap();
232232
let ethernet = packet.push::<Ethernet>().unwrap();
233-
let ipv6 = ethernet.push::<Ipv6>().unwrap();
234-
let mut echo = ipv6.push::<EchoReply<Ipv6>>().unwrap();
233+
let ip6 = ethernet.push::<Ip6>().unwrap();
234+
let mut echo = ip6.push::<EchoReply<Ip6>>().unwrap();
235235

236236
assert_eq!(4, echo.header_len());
237237
assert_eq!(EchoReplyBody::size_of(), echo.payload_len());

core/src/packets/icmp/v6/echo_request.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ struct EchoRequestBody {
219219
mod tests {
220220
use super::*;
221221
use crate::packets::ethernet::Ethernet;
222-
use crate::packets::ip::v6::Ipv6;
222+
use crate::packets::ip::v6::Ip6;
223223
use crate::packets::Mbuf;
224224

225225
#[test]
@@ -231,8 +231,8 @@ mod tests {
231231
fn push_and_set_echo_request() {
232232
let packet = Mbuf::new().unwrap();
233233
let ethernet = packet.push::<Ethernet>().unwrap();
234-
let ipv6 = ethernet.push::<Ipv6>().unwrap();
235-
let mut echo = ipv6.push::<EchoRequest<Ipv6>>().unwrap();
234+
let ip6 = ethernet.push::<Ip6>().unwrap();
235+
let mut echo = ip6.push::<EchoRequest<Ip6>>().unwrap();
236236

237237
assert_eq!(4, echo.header_len());
238238
assert_eq!(EchoRequestBody::size_of(), echo.payload_len());

core/src/packets/icmp/v6/mod.rs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,7 @@ mod tests {
500500
use super::*;
501501
use crate::packets::ethernet::Ethernet;
502502
use crate::packets::icmp::v6::ndp::RouterAdvertisement;
503-
use crate::packets::ip::v6::Ipv6;
503+
use crate::packets::ip::v6::Ip6;
504504
use crate::packets::Mbuf;
505505
use crate::testils::byte_arrays::{ICMPV6_PACKET, IPV6_TCP_PACKET, ROUTER_ADVERT_PACKET};
506506

@@ -513,16 +513,16 @@ mod tests {
513513
fn parse_icmpv6_packet() {
514514
let packet = Mbuf::from_bytes(&ROUTER_ADVERT_PACKET).unwrap();
515515
let ethernet = packet.parse::<Ethernet>().unwrap();
516-
let ipv6 = ethernet.parse::<Ipv6>().unwrap();
517-
let icmpv6 = ipv6.parse::<Icmpv6<Ipv6>>().unwrap();
516+
let ip6 = ethernet.parse::<Ip6>().unwrap();
517+
let icmp6 = ip6.parse::<Icmpv6<Ip6>>().unwrap();
518518

519519
// parses the generic header
520-
assert_eq!(Icmpv6Types::RouterAdvertisement, icmpv6.msg_type());
521-
assert_eq!(0, icmpv6.code());
522-
assert_eq!(0xf50c, icmpv6.checksum());
520+
assert_eq!(Icmpv6Types::RouterAdvertisement, icmp6.msg_type());
521+
assert_eq!(0, icmp6.code());
522+
assert_eq!(0xf50c, icmp6.checksum());
523523

524524
// downcasts to specific message
525-
let advert = icmpv6.downcast::<RouterAdvertisement<Ipv6>>().unwrap();
525+
let advert = icmp6.downcast::<RouterAdvertisement<Ip6>>().unwrap();
526526
assert_eq!(Icmpv6Types::RouterAdvertisement, advert.msg_type());
527527
assert_eq!(0, advert.code());
528528
assert_eq!(0xf50c, advert.checksum());
@@ -534,48 +534,48 @@ mod tests {
534534
assert_eq!(0, advert.retrans_timer());
535535

536536
// also can one-step parse
537-
let ipv6 = advert.deparse();
538-
assert!(ipv6.parse::<RouterAdvertisement<Ipv6>>().is_ok());
537+
let ip6 = advert.deparse();
538+
assert!(ip6.parse::<RouterAdvertisement<Ip6>>().is_ok());
539539
}
540540

541541
#[capsule::test]
542542
fn parse_wrong_icmpv6_type() {
543543
let packet = Mbuf::from_bytes(&ICMPV6_PACKET).unwrap();
544544
let ethernet = packet.parse::<Ethernet>().unwrap();
545-
let ipv6 = ethernet.parse::<Ipv6>().unwrap();
546-
let icmpv6 = ipv6.parse::<Icmpv6<Ipv6>>().unwrap();
545+
let ip6 = ethernet.parse::<Ip6>().unwrap();
546+
let icmp6 = ip6.parse::<Icmpv6<Ip6>>().unwrap();
547547

548-
assert!(icmpv6.downcast::<EchoReply<Ipv6>>().is_err());
548+
assert!(icmp6.downcast::<EchoReply<Ip6>>().is_err());
549549
}
550550

551551
#[capsule::test]
552552
fn parse_non_icmpv6_packet() {
553553
let packet = Mbuf::from_bytes(&IPV6_TCP_PACKET).unwrap();
554554
let ethernet = packet.parse::<Ethernet>().unwrap();
555-
let ipv6 = ethernet.parse::<Ipv6>().unwrap();
555+
let ip6 = ethernet.parse::<Ip6>().unwrap();
556556

557-
assert!(ipv6.parse::<Icmpv6<Ipv6>>().is_err());
557+
assert!(ip6.parse::<Icmpv6<Ip6>>().is_err());
558558
}
559559

560560
#[capsule::test]
561561
fn compute_checksum() {
562562
let packet = Mbuf::from_bytes(&ROUTER_ADVERT_PACKET).unwrap();
563563
let ethernet = packet.parse::<Ethernet>().unwrap();
564-
let ipv6 = ethernet.parse::<Ipv6>().unwrap();
565-
let mut icmpv6 = ipv6.parse::<Icmpv6<Ipv6>>().unwrap();
564+
let ip6 = ethernet.parse::<Ip6>().unwrap();
565+
let mut icmp6 = ip6.parse::<Icmpv6<Ip6>>().unwrap();
566566

567-
let expected = icmpv6.checksum();
567+
let expected = icmp6.checksum();
568568
// no payload change but force a checksum recompute anyway
569-
icmpv6.reconcile_all();
570-
assert_eq!(expected, icmpv6.checksum());
569+
icmp6.reconcile_all();
570+
assert_eq!(expected, icmp6.checksum());
571571
}
572572

573573
#[capsule::test]
574574
fn push_icmpv6_header_without_body() {
575575
let packet = Mbuf::new().unwrap();
576576
let ethernet = packet.push::<Ethernet>().unwrap();
577-
let ipv6 = ethernet.push::<Ipv6>().unwrap();
577+
let ip6 = ethernet.push::<Ip6>().unwrap();
578578

579-
assert!(ipv6.push::<Icmpv6<Ipv6>>().is_err());
579+
assert!(ip6.push::<Icmpv6<Ip6>>().is_err());
580580
}
581581
}

core/src/packets/icmp/v6/ndp/mod.rs

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -552,15 +552,15 @@ pub trait NdpOption<'a> {
552552
mod tests {
553553
use super::*;
554554
use crate::packets::ethernet::Ethernet;
555-
use crate::packets::ip::v6::Ipv6;
555+
use crate::packets::ip::v6::Ip6;
556556
use crate::testils::byte_arrays::ROUTER_ADVERT_PACKET;
557557

558558
#[capsule::test]
559559
fn iterate_immutable_ndp_options() {
560560
let packet = Mbuf::from_bytes(&ROUTER_ADVERT_PACKET).unwrap();
561561
let ethernet = packet.parse::<Ethernet>().unwrap();
562-
let ipv6 = ethernet.parse::<Ipv6>().unwrap();
563-
let advert = ipv6.parse::<RouterAdvertisement<Ipv6>>().unwrap();
562+
let ip6 = ethernet.parse::<Ip6>().unwrap();
563+
let advert = ip6.parse::<RouterAdvertisement<Ip6>>().unwrap();
564564

565565
let mut prefix = false;
566566
let mut mtu = false;
@@ -588,8 +588,8 @@ mod tests {
588588
fn invalid_ndp_option_length() {
589589
let packet = Mbuf::from_bytes(&INVALID_OPTION_LENGTH).unwrap();
590590
let ethernet = packet.parse::<Ethernet>().unwrap();
591-
let ipv6 = ethernet.parse::<Ipv6>().unwrap();
592-
let advert = ipv6.parse::<RouterAdvertisement<Ipv6>>().unwrap();
591+
let ip6 = ethernet.parse::<Ip6>().unwrap();
592+
let advert = ip6.parse::<RouterAdvertisement<Ip6>>().unwrap();
593593

594594
assert!(advert.options_iter().next().is_err());
595595
}
@@ -598,8 +598,8 @@ mod tests {
598598
fn downcast_immutable_ndp_option() {
599599
let packet = Mbuf::from_bytes(&ROUTER_ADVERT_PACKET).unwrap();
600600
let ethernet = packet.peek::<Ethernet>().unwrap();
601-
let ipv6 = ethernet.peek::<Ipv6>().unwrap();
602-
let advert = ipv6.peek::<RouterAdvertisement<Ipv6>>().unwrap();
601+
let ip6 = ethernet.peek::<Ip6>().unwrap();
602+
let advert = ip6.peek::<RouterAdvertisement<Ip6>>().unwrap();
603603

604604
let mut iter = advert.options_iter();
605605

@@ -616,8 +616,8 @@ mod tests {
616616
fn iterate_mutable_ndp_options() {
617617
let packet = Mbuf::from_bytes(&ROUTER_ADVERT_PACKET).unwrap();
618618
let ethernet = packet.parse::<Ethernet>().unwrap();
619-
let ipv6 = ethernet.parse::<Ipv6>().unwrap();
620-
let mut advert = ipv6.parse::<RouterAdvertisement<Ipv6>>().unwrap();
619+
let ip6 = ethernet.parse::<Ip6>().unwrap();
620+
let mut advert = ip6.parse::<RouterAdvertisement<Ip6>>().unwrap();
621621

622622
let mut prefix = false;
623623
let mut mtu = false;
@@ -646,8 +646,8 @@ mod tests {
646646
fn downcast_mutable_ndp_option() {
647647
let packet = Mbuf::from_bytes(&ROUTER_ADVERT_PACKET).unwrap();
648648
let ethernet = packet.parse::<Ethernet>().unwrap();
649-
let ipv6 = ethernet.parse::<Ipv6>().unwrap();
650-
let mut advert = ipv6.parse::<RouterAdvertisement<Ipv6>>().unwrap();
649+
let ip6 = ethernet.parse::<Ip6>().unwrap();
650+
let mut advert = ip6.parse::<RouterAdvertisement<Ip6>>().unwrap();
651651
let mut options = advert.options_mut();
652652
let mut iter = options.iter();
653653

@@ -664,8 +664,8 @@ mod tests {
664664
fn modify_ndp_option() {
665665
let packet = Mbuf::from_bytes(&ROUTER_ADVERT_PACKET).unwrap();
666666
let ethernet = packet.parse::<Ethernet>().unwrap();
667-
let ipv6 = ethernet.parse::<Ipv6>().unwrap();
668-
let mut advert = ipv6.parse::<RouterAdvertisement<Ipv6>>().unwrap();
667+
let ip6 = ethernet.parse::<Ip6>().unwrap();
668+
let mut advert = ip6.parse::<RouterAdvertisement<Ip6>>().unwrap();
669669
let mut options = advert.options_mut();
670670
let mut iter = options.iter();
671671

@@ -683,8 +683,8 @@ mod tests {
683683
fn prepend_ndp_option() {
684684
let packet = Mbuf::from_bytes(&ROUTER_ADVERT_PACKET).unwrap();
685685
let ethernet = packet.parse::<Ethernet>().unwrap();
686-
let ipv6 = ethernet.parse::<Ipv6>().unwrap();
687-
let mut advert = ipv6.parse::<RouterAdvertisement<Ipv6>>().unwrap();
686+
let ip6 = ethernet.parse::<Ip6>().unwrap();
687+
let mut advert = ip6.parse::<RouterAdvertisement<Ip6>>().unwrap();
688688
let mut options = advert.options_mut();
689689
let mut target = options.prepend::<LinkLayerAddress<'_>>().unwrap();
690690
target.set_option_type_target();
@@ -699,8 +699,8 @@ mod tests {
699699
fn append_ndp_option() {
700700
let packet = Mbuf::from_bytes(&ROUTER_ADVERT_PACKET).unwrap();
701701
let ethernet = packet.parse::<Ethernet>().unwrap();
702-
let ipv6 = ethernet.parse::<Ipv6>().unwrap();
703-
let mut advert = ipv6.parse::<RouterAdvertisement<Ipv6>>().unwrap();
702+
let ip6 = ethernet.parse::<Ip6>().unwrap();
703+
let mut advert = ip6.parse::<RouterAdvertisement<Ip6>>().unwrap();
704704
let mut options = advert.options_mut();
705705
let mut target = options.append::<LinkLayerAddress<'_>>().unwrap();
706706
target.set_option_type_target();
@@ -723,8 +723,8 @@ mod tests {
723723
fn retain_ndp_options() {
724724
let packet = Mbuf::from_bytes(&ROUTER_ADVERT_PACKET).unwrap();
725725
let ethernet = packet.parse::<Ethernet>().unwrap();
726-
let ipv6 = ethernet.parse::<Ipv6>().unwrap();
727-
let mut advert = ipv6.parse::<RouterAdvertisement<Ipv6>>().unwrap();
726+
let ip6 = ethernet.parse::<Ip6>().unwrap();
727+
let mut advert = ip6.parse::<RouterAdvertisement<Ip6>>().unwrap();
728728
let mut options = advert.options_mut();
729729
let _ = options.retain(|option| option.downcast::<Mtu<'_>>().is_ok());
730730

@@ -754,8 +754,8 @@ mod tests {
754754

755755
let packet = Mbuf::from_bytes(&ROUTER_ADVERT_PACKET).unwrap();
756756
let ethernet = packet.parse::<Ethernet>().unwrap();
757-
let ipv6 = ethernet.parse::<Ipv6>().unwrap();
758-
let mut advert = ipv6.parse::<RouterAdvertisement<Ipv6>>().unwrap();
757+
let ip6 = ethernet.parse::<Ip6>().unwrap();
758+
let mut advert = ip6.parse::<RouterAdvertisement<Ip6>>().unwrap();
759759

760760
let mut iter = advert.options_iter();
761761
advert.set_code(0);
@@ -775,8 +775,8 @@ mod tests {
775775
fn cannot_mutate_immutable_option() {
776776
let packet = Mbuf::from_bytes(&ROUTER_ADVERT_PACKET).unwrap();
777777
let ethernet = packet.parse::<Ethernet>().unwrap();
778-
let ipv6 = ethernet.parse::<Ipv6>().unwrap();
779-
let advert = ipv6.parse::<RouterAdvertisement<Ipv6>>().unwrap();
778+
let ip6 = ethernet.parse::<Ip6>().unwrap();
779+
let advert = ip6.parse::<RouterAdvertisement<Ip6>>().unwrap();
780780
let mut iter = advert.options_iter();
781781

782782
let mut option = iter.next().unwrap().unwrap();
@@ -802,8 +802,8 @@ mod tests {
802802
fn cannot_mutate_options_while_iterating_options() {
803803
let packet = Mbuf::from_bytes(&ROUTER_ADVERT_PACKET).unwrap();
804804
let ethernet = packet.parse::<Ethernet>().unwrap();
805-
let ipv6 = ethernet.parse::<Ipv6>().unwrap();
806-
let mut advert = ipv6.parse::<RouterAdvertisement<Ipv6>>().unwrap();
805+
let ip6 = ethernet.parse::<Ip6>().unwrap();
806+
let mut advert = ip6.parse::<RouterAdvertisement<Ip6>>().unwrap();
807807

808808
let mut options = advert.options_mut();
809809
let mut iter = options.iter();

core/src/packets/icmp/v6/ndp/neighbor_advert.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ impl Default for NeighborAdvertisementBody {
271271
mod tests {
272272
use super::*;
273273
use crate::packets::ethernet::Ethernet;
274-
use crate::packets::ip::v6::Ipv6;
274+
use crate::packets::ip::v6::Ip6;
275275
use crate::packets::Mbuf;
276276

277277
#[test]
@@ -283,8 +283,8 @@ mod tests {
283283
fn push_and_set_neighbor_advertisement() {
284284
let packet = Mbuf::new().unwrap();
285285
let ethernet = packet.push::<Ethernet>().unwrap();
286-
let ipv6 = ethernet.push::<Ipv6>().unwrap();
287-
let mut advert = ipv6.push::<NeighborAdvertisement<Ipv6>>().unwrap();
286+
let ip6 = ethernet.push::<Ip6>().unwrap();
287+
let mut advert = ip6.push::<NeighborAdvertisement<Ip6>>().unwrap();
288288

289289
assert_eq!(4, advert.header_len());
290290
assert_eq!(NeighborAdvertisementBody::size_of(), advert.payload_len());

core/src/packets/icmp/v6/ndp/neighbor_solicit.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ impl Default for NeighborSolicitationBody {
186186
mod tests {
187187
use super::*;
188188
use crate::packets::ethernet::Ethernet;
189-
use crate::packets::ip::v6::Ipv6;
189+
use crate::packets::ip::v6::Ip6;
190190
use crate::packets::Mbuf;
191191

192192
#[test]
@@ -198,8 +198,8 @@ mod tests {
198198
fn push_and_set_neighbor_solicitation() {
199199
let packet = Mbuf::new().unwrap();
200200
let ethernet = packet.push::<Ethernet>().unwrap();
201-
let ipv6 = ethernet.push::<Ipv6>().unwrap();
202-
let mut solicit = ipv6.push::<NeighborSolicitation<Ipv6>>().unwrap();
201+
let ip6 = ethernet.push::<Ip6>().unwrap();
202+
let mut solicit = ip6.push::<NeighborSolicitation<Ip6>>().unwrap();
203203

204204
assert_eq!(4, solicit.header_len());
205205
assert_eq!(NeighborSolicitationBody::size_of(), solicit.payload_len());

core/src/packets/icmp/v6/ndp/options/link_layer_addr.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ mod tests {
192192
use super::*;
193193
use crate::packets::ethernet::Ethernet;
194194
use crate::packets::icmp::v6::ndp::{NdpPacket, RouterAdvertisement};
195-
use crate::packets::ip::v6::Ipv6;
195+
use crate::packets::ip::v6::Ip6;
196196
use crate::packets::Packet;
197197
use crate::testils::byte_arrays::ROUTER_ADVERT_PACKET;
198198

@@ -205,8 +205,8 @@ mod tests {
205205
fn parse_link_layer_address() {
206206
let packet = Mbuf::from_bytes(&ROUTER_ADVERT_PACKET).unwrap();
207207
let ethernet = packet.parse::<Ethernet>().unwrap();
208-
let ipv6 = ethernet.parse::<Ipv6>().unwrap();
209-
let mut advert = ipv6.parse::<RouterAdvertisement<Ipv6>>().unwrap();
208+
let ip6 = ethernet.parse::<Ip6>().unwrap();
209+
let mut advert = ip6.parse::<RouterAdvertisement<Ip6>>().unwrap();
210210
let mut options = advert.options_mut();
211211
let mut iter = options.iter();
212212

@@ -229,8 +229,8 @@ mod tests {
229229
fn push_and_set_link_layer_address() {
230230
let packet = Mbuf::new().unwrap();
231231
let ethernet = packet.push::<Ethernet>().unwrap();
232-
let ipv6 = ethernet.push::<Ipv6>().unwrap();
233-
let mut advert = ipv6.push::<RouterAdvertisement<Ipv6>>().unwrap();
232+
let ip6 = ethernet.push::<Ip6>().unwrap();
233+
let mut advert = ip6.push::<RouterAdvertisement<Ip6>>().unwrap();
234234
let mut options = advert.options_mut();
235235
let mut lla = options.append::<LinkLayerAddress<'_>>().unwrap();
236236

core/src/packets/icmp/v6/ndp/options/mtu.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ mod tests {
172172
use super::*;
173173
use crate::packets::ethernet::Ethernet;
174174
use crate::packets::icmp::v6::ndp::{NdpPacket, RouterAdvertisement};
175-
use crate::packets::ip::v6::Ipv6;
175+
use crate::packets::ip::v6::Ip6;
176176
use crate::packets::Packet;
177177
use crate::testils::byte_arrays::ROUTER_ADVERT_PACKET;
178178

@@ -185,8 +185,8 @@ mod tests {
185185
fn parse_mtu() {
186186
let packet = Mbuf::from_bytes(&ROUTER_ADVERT_PACKET).unwrap();
187187
let ethernet = packet.parse::<Ethernet>().unwrap();
188-
let ipv6 = ethernet.parse::<Ipv6>().unwrap();
189-
let mut advert = ipv6.parse::<RouterAdvertisement<Ipv6>>().unwrap();
188+
let ip6 = ethernet.parse::<Ip6>().unwrap();
189+
let mut advert = ip6.parse::<RouterAdvertisement<Ip6>>().unwrap();
190190
let mut options = advert.options_mut();
191191
let mut iter = options.iter();
192192

@@ -209,8 +209,8 @@ mod tests {
209209
fn push_and_set_mtu() {
210210
let packet = Mbuf::new().unwrap();
211211
let ethernet = packet.push::<Ethernet>().unwrap();
212-
let ipv6 = ethernet.push::<Ipv6>().unwrap();
213-
let mut advert = ipv6.push::<RouterAdvertisement<Ipv6>>().unwrap();
212+
let ip6 = ethernet.push::<Ip6>().unwrap();
213+
let mut advert = ip6.push::<RouterAdvertisement<Ip6>>().unwrap();
214214
let mut options = advert.options_mut();
215215
let mut mtu = options.append::<Mtu<'_>>().unwrap();
216216

0 commit comments

Comments
 (0)