#[inline]
pub(crate) fn skip_extension_headers(packet: &[u8], next_header: u8, offset: usize) -> (u8, usize) {
crate::packet::skip_ipv6_ext(packet, next_header, offset)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn no_extension_returns_input() {
let pkt = [0u8; 40];
let (proto, off) = skip_extension_headers(&pkt, 6, 40);
assert_eq!(proto, 6);
assert_eq!(off, 40);
}
#[test]
fn skip_hop_by_hop() {
let mut pkt = vec![0u8; 60];
pkt[40] = 17; pkt[41] = 0; let (proto, off) = skip_extension_headers(&pkt, 0, 40);
assert_eq!(proto, 17);
assert_eq!(off, 48);
}
#[test]
fn skip_fragment_header() {
let mut pkt = vec![0u8; 60];
pkt[40] = 6; let (proto, off) = skip_extension_headers(&pkt, 44, 40);
assert_eq!(proto, 6);
assert_eq!(off, 48);
}
}