I transfer a series of test packet with IEC61850_SV protocal in my host as follows:
> 01 0C CD 04 00 03 00 0C CD 04 00 00 81 00 80 01 88 BA 40 03 01 24 00 00 00 00 60 82 01 18 80 01 01 A2 82 01 11 30 82 01 0D 80 1B 50 53 53 43 36 30 31 4D 55 53 56 2F 4C 4C 4E 30 24 4D 53 24 4D 53 56 43 42 30 31 82 02 0B C6 83 04 00 00 00 01 85 01 00 87 81 E0 00 00 00 FA 00 00 00 00 FF EC C5 D9 00 00 00 00 FF EC C5 D9 00 00 00 00 00 12 19 12 00 00 00 00 00 12 19 12 00 00 00 00 00 01 21 24 00 00 00 00 00 01 21 24 00 00 00 00 FF EC C5 D9 00 00 00 00 00 12 19 12 00 00 00 00 00 01 21 24 00 00 00 00 FF 90 FD E8 00 00 00 00 FF 90 FD E8 00 00 00 00 00 68 7C DF 00 00 00 00 00 68 7C DF 00 00 00 00 00 06 85 39 00 00 00 00 00 06 85 39 00 00 00 00 FF 90 FD E8 00 00 00 00 FF 90 FD E8 00 00 00 00 00 00 00 0F 00 00 00 00 00 00 00 0F 00 00 00 00 FF 90 FD E8 00 00 00 00 FF 90 FD E8 00 00 00 00 00 68 7C DF 00 00 00 00 00 68 7C DF 00 00 00 00 00 06 85 39 00 00 00 00 00 06 85 39 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Num 000001
Length 314
Capture Length 310
time difference 0.000000000 sec
ethernet - II [0/14]
target 01:0C:CD:04:00:03 [0/6]
source 00:0C:CD:04:00:00 [6/6]
protocal 0x8100 (VLAN) [12/2]
802.1Q vlan protocal [14/4]
Label [14/2]
User priority 100. .... [14/1] 0x00E0
CFI ...0 .... [14/1] 0x0010
VlAN num .... 0000 0000 0001 (1) [14/2] 0x0FFF
protocal 0x88ba (IEC61850_SV) [16/2]
IEC61850 sample value [18/21]
Id 0x4003 [18/2]
length 292 [20/2]
reserved bit1 0x0 [22/2]
reserved bit2 0x0 [24/2]
savPdu [30/0]
application service data units 1 [32/1]
Sequence ASDU [37/0]
ASDU [37/0]
Additional data [39/271]
bytes 271 bytes [39/271]
FCs
FCs 0x2F0CA2EA
Then I use tcpdump in my target machine to capture the packets. The log is shown as follows:
09:06:02.562846 00:0c:cd:04:00:00 (oui Unknown) > 01:0c:cd:04:00:03 (oui Unknown), 802.1Q, length 310:
09:06:02.574656 00:0c:cd:04:00:00 (oui Unknown) > 01:0c:cd:04:00:03 (oui Unknown), 802.1Q, length 310:
09:06:02.589684 00:0c:cd:04:00:00 (oui Unknown) > 01:0c:cd:04:00:03 (oui Unknown), 802.1Q, length 310:
09:06:02.605706 00:0c:cd:04:00:00 (oui Unknown) > 01:0c:cd:04:00:03 (oui Unknown), 802.1Q, length 310:
09:06:02.620610 00:0c:cd:04:00:00 (oui Unknown) > 01:0c:cd:04:00:03 (oui Unknown), 802.1Q, length 310:
09:06:02.635996 00:0c:cd:04:00:00 (oui Unknown) > 01:0c:cd:04:00:03 (oui Unknown), 802.1Q, length 310:
09:06:02.650857 00:0c:cd:04:00:00 (oui Unknown) > 01:0c:cd:04:00:03 (oui Unknown), 802.1Q, length 310:
09:06:02.665517 00:0c:cd:04:00:00 (oui Unknown) > 01:0c:cd:04:00:03 (oui Unknown), 802.1Q, length 310:
09:06:02.680210 00:0c:cd:04:00:00 (oui Unknown) > 01:0c:cd:04:00:03 (oui Unknown), 802.1Q, length 310:
09:06:02.695342 00:0c:cd:04:00:00 (oui Unknown) > 01:0c:cd:04:00:03 (oui Unknown), 802.1Q, length 310:
10 packets captured
10 packets received by filter
0 packets dropped by kernel
10 packets dropped by interface
It's werid that all vlan protocal packets was dropped by interfaces. Then I use add eth0 1
to add eth0.1 port, and use eth0.1 to receive the packet, and it shows packets was received properly.
Since other packets like ARP will be received by interface properly. I wonder why packets with vlan protocal will be dropped automatically by interface rather than received by interface but can not be resolved by network layer. It sames that data link layer dropped it directly and kernel did not get any data.
cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
eth1: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
lo: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eth0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Besides adding vlan, is there any way for the kernel to directly receive these packets?
Asked by Sun Caelus
(11 rep)
Sep 21, 2022, 07:37 AM