From: Yevgeny Khodorkovsky Date: Thu, 10 Jul 2014 05:13:57 +0000 (-0700) Subject: IEEE802.1q Packet returns incorrect header size X-Git-Tag: release/helium~495^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=7cae5d45abd1b6ac6bfc096e1cd9ee64990fc7bd;p=controller.git IEEE802.1q Packet returns incorrect header size IEEE8021Q class uses the Packet.getHeaderSize() which iterates through header fields to determine the size. .1Q header is fixed in size and should return the correct value Change-Id: I4b0123dd943f6e833f14782f2ed7cc0e6e184e87 Signed-off-by: Yevgeny Khodorkovsky --- diff --git a/opendaylight/arphandler/src/main/java/org/opendaylight/controller/arphandler/internal/ArpHandler.java b/opendaylight/arphandler/src/main/java/org/opendaylight/controller/arphandler/internal/ArpHandler.java index fe456f3f8e..4efcada2f8 100644 --- a/opendaylight/arphandler/src/main/java/org/opendaylight/controller/arphandler/internal/ArpHandler.java +++ b/opendaylight/arphandler/src/main/java/org/opendaylight/controller/arphandler/internal/ArpHandler.java @@ -695,6 +695,8 @@ public class ArpHandler implements IHostFinder, IListenDataPacket, ICacheUpdateA dot1q.setVid(vlan); dot1q.setEtherType(EtherTypes.ARP.shortValue()); dot1q.setPayload(arp); + dot1q.setCfi((byte)0); + dot1q.setPcp((byte)0); ethernet.setEtherType(EtherTypes.VLANTAGGED.shortValue()); ethernet.setPayload(dot1q); } diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/IEEE8021Q.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/IEEE8021Q.java index 9825d0eefb..4c0c94ccb8 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/IEEE8021Q.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/IEEE8021Q.java @@ -11,6 +11,7 @@ package org.opendaylight.controller.sal.packet; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; + import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; import org.opendaylight.controller.sal.match.Match; @@ -156,4 +157,14 @@ public class IEEE8021Q extends Packet { match.setField(MatchType.DL_VLAN_PR, this.getPcp()); match.setField(MatchType.DL_TYPE, this.getEtherType()); } + + /** + * Gets the header size in bits + * @return The .1Q header size in bits + */ + @Override + public int getHeaderSize() { + return 32; + } + }