package com.netifera.platform.net.wifi.packets;
import com.netifera.platform.util.addresses.MACAddress;
public class DataFrame extends WiFiFrame {
MACAddress address4;
@Override
protected void unpackHeader() {
super.unpackHeader();
if(toDS && fromDS) {
address4 = new MACAddress(unpackBytes(6));
}
}
@Override
public int headerLength() {
if (toDS && fromDS) {
return super.headerLength()+6;
}
return super.headerLength();
}
@Override
public int nextProtocol() {
if (type >= 0x24) {
return -1; // no data
} else {
return 0; // IPv4
}
}
public MACAddress destination() {
if(!toDS && !fromDS) {
return address1;
} else if(!toDS && fromDS) {
return address1;
}
return address3;
}
public MACAddress source() {
if(!toDS && fromDS) {
return address3;
} else if(toDS && fromDS) {
return address4;
}
return address2;
}
public MACAddress bssid() {
if(!toDS && !fromDS) {
return address3;
} else if(!toDS && fromDS) {
return address2;
} else if(toDS && !fromDS) {
return address1;
}
return null;
}
}