Exemplo n.º 1
0
        public override void Write(byte[] buffer, int offset, int payloadLength, ILayer previousLayer, ILayer nextLayer)
        {
            EthernetType       ethernetType      = EthernetBaseLayer.GetEthernetType(this.EtherType, nextLayer);
            MacAddress         destination       = this.Destination;
            IEthernetNextLayer ethernetNextLayer = nextLayer as IEthernetNextLayer;

            if (destination == MacAddress.Zero && ethernetNextLayer != null && ethernetNextLayer.PreviousLayerDefaultDestination.HasValue)
            {
                destination = ethernetNextLayer.PreviousLayerDefaultDestination.Value;
            }
            EthernetDatagram.WriteHeader(buffer, offset, this.Source, destination, ethernetType);
        }
Exemplo n.º 2
0
 internal static void WriteHeader(byte[] buffer, int offset, MacAddress ethernetSource, MacAddress ethernetDestination, EthernetType ethernetType)
 {
     ByteArrayExtensions.Write(buffer, offset + 6, ethernetSource, Endianity.Big);
     ByteArrayExtensions.Write(buffer, offset, ethernetDestination, Endianity.Big);
     ByteArrayExtensions.Write(buffer, offset + 12, (ushort)ethernetType, Endianity.Big);
 }
Exemplo n.º 3
0
 internal static void WriteHeader(byte[] buffer, int offset, MacAddress ethernetSource, MacAddress ethernetDestination, EthernetType ethernetType)
 {
     buffer.Write(offset + Offset.Source, ethernetSource, Endianity.Big);
     buffer.Write(offset + Offset.Destination, ethernetDestination, Endianity.Big);
     buffer.Write(offset + Offset.EtherTypeLength, (ushort)ethernetType, Endianity.Big);
 }