diff --git a/src/internet/model/ipv4-raw-socket-impl.cc b/src/internet/model/ipv4-raw-socket-impl.cc index bcc26e8be..8fc84f031 100644 --- a/src/internet/model/ipv4-raw-socket-impl.cc +++ b/src/internet/model/ipv4-raw-socket-impl.cc @@ -29,7 +29,7 @@ Ipv4RawSocketImpl::GetTypeId (void) MakeUintegerAccessor (&Ipv4RawSocketImpl::m_protocol), MakeUintegerChecker ()) .AddAttribute ("IcmpFilter", - "Any icmp header whose type field matches a bit in this filter is dropped.", + "Any icmp header whose type field matches a bit in this filter is dropped. Type must be less than 32.", UintegerValue (0), MakeUintegerAccessor (&Ipv4RawSocketImpl::m_icmpFilter), MakeUintegerChecker ()) @@ -326,7 +326,7 @@ Ipv4RawSocketImpl::ForwardUp (Ptr p, Ipv4Header ipHeader, PtrPeekHeader (icmpHeader); uint8_t type = icmpHeader.GetType (); if (type < 32 && - ((1 << type) & m_icmpFilter)) + ((uint32_t(1) << type) & m_icmpFilter)) { // filter out icmp packet. return false;