네, 알겠습니다. 셸 스크립트 파일을 만들고 실행하는 과정 없이, 단순히 시리얼 터미널에 순서대로 복사해서 붙여넣기만 하면 모든 설정이 완료되도록 각 보드별 명령어 묶음을 만들어 드리겠습니다.
아래 명령어들은 cat << 'EOF' > ...
와 sh ...
를 사용하여 스크립트 파일을 동적으로 생성하고 바로 실행하는 방식입니다. 이렇게 하면 여러 줄의 명령어를 한 번에 붙여넣어도 중간에 끊기거나 오작동하지 않습니다.
root
로 로그인합니다.먼저 보드 B의 터미널 창에 아래의 전체 블록을 한 번에 복사하여 붙여넣기 하십시오.
cat << 'EOF' > /home/root/frer_listener.sh
#!/bin/sh
# =============================================================
# S32G FRER - 수신측(Listener) 설정 스크립트
# =============================================================
# 변수 설정
STREAM_ID=1
VLAN_ID=200
MY_IP="192.168.200.2"
HIF0_ID=4
ANY_INPUT_IF=0
echo "=====[1/5] 이전 설정 초기화 및 인터페이스 활성화 ====="
ip link del hif0.200 >/dev/null 2>&1
libfci_cli bd-remif --vlan=$VLAN_ID --interface=hif0 >/dev/null 2>&1
libfci_cli bd-remif --vlan=$VLAN_ID --interface=emac0 >/dev/null 2>&1
libfci_cli bd-remif --vlan=$VLAN_ID --interface=emac1 >/dev/null 2>&1
libfci_cli bd-del --vlan=$VLAN_ID >/dev/null 2>&1
libfci_cli phyif-update --interface=emac0 --enable
libfci_cli phyif-update --interface=emac1 --enable
libfci_cli phyif-update --interface=hif0 --enable
echo "OK"
echo "\n=====[2/5] FRER 관련 기능 활성화 ====="
libfci_cli fwfeat-set --feature=stream-identification --enable
libfci_cli fwfeat-set --feature=sequence-recovery --enable
libfci_cli fwfeat-set --feature=tagging --enable
echo "OK"
echo "\n=====[3/5] 중복 제거할 스트림 식별 규칙 설정 ====="
libfci_cli fwfeat-el-set --feature=stream-identification --element=handle_table --pos=$STREAM_ID --us=4 --payload=$STREAM_ID
libfci_cli fwfeat-el-set --feature=stream-identification --element=iport_table --pos=$STREAM_ID --us=1 --payload=$ANY_INPUT_IF
libfci_cli fwfeat-el-set --feature=stream-identification --element=tagged_table --pos=$STREAM_ID --us=1 --payload=1
echo "OK"
echo "\n=====[4/5] 시퀀스 기반 중복 제거 및 태그 제거 설정 ====="
libfci_cli fwfeat-el-set --feature=sequence-recovery --element=recov_en_table --pos=$STREAM_ID --us=1 --payload=1
libfci_cli fwfeat-el-set --feature=sequence-recovery --element=history_len_table --pos=$STREAM_ID --us=1 --payload=32
libfci_cli fwfeat-el-set --feature=tagging --element=untag_en_table --pos=$STREAM_ID --us=1 --payload=1
echo "OK"
echo "\n=====[5/5] 최종 트래픽 수신을 위한 L2 브릿지 및 네트워크 설정 ====="
libfci_cli bd-add --vlan=$VLAN_ID
libfci_cli bd-insif --vlan=$VLAN_ID --interface=emac0
libfci_cli bd-insif --vlan=$VLAN_ID --interface=emac1
libfci_cli bd-insif --vlan=$VLAN_ID --interface=hif0
libfci_cli bd-update --vlan=$VLAN_ID --ucast-miss=FLOOD
ip link add link hif0 name hif0.$VLAN_ID type vlan id $VLAN_ID
ip addr add $MY_IP/24 dev hif0.$VLAN_ID
ip link set hif0.$VLAN_ID up
echo "OK"
echo "\n[성공] 수신측(Listener) 설정이 완료되었습니다."
echo "이제부터 tcpdump -i hif0.$VLAN_ID -n icmp 명령어로 수신 상태를 모니터링하세요."
EOF
chmod +x /home/root/frer_listener.sh
/home/root/frer_listener.sh
보드 A의 터미널 창에 아래의 전체 블록을 한 번에 복사하여 붙여넣기 하십시오.
cat << 'EOF' > /home/root/frer_talker.sh
#!/bin/sh
# =============================================================
# S32G FRER - 송신측(Talker) 설정 스크립트
# =============================================================
# 변수 설정
STREAM_ID=1
VLAN_ID=200
TARGET_IP="192.168.200.2"
MY_IP="192.168.200.1"
HIF0_ID=4
PORT_MASK=3 # emac0(bit0) + emac1(bit1)
echo "=====[1/5] 이전 설정 초기화 및 인터페이스 활성화 ====="
ip link del hif0.200 >/dev/null 2>&1
libfci_cli bd-remif --vlan=$VLAN_ID --interface=hif0 >/dev/null 2>&1
libfci_cli bd-remif --vlan=$VLAN_ID --interface=emac0 >/dev/null 2>&1
libfci_cli bd-remif --vlan=$VLAN_ID --interface=emac1 >/dev/null 2>&1
libfci_cli bd-del --vlan=$VLAN_ID >/dev/null 2>&1
libfci_cli phyif-update --interface=hif0 --enable
libfci_cli phyif-update --interface=emac0 --enable
libfci_cli phyif-update --interface=emac1 --enable
echo "OK"
echo "\n=====[2/5] FRER 관련 기능 활성화 ====="
libfci_cli fwfeat-set --feature=stream-identification --enable
libfci_cli fwfeat-set --feature=stream-splitting --enable
libfci_cli fwfeat-set --feature=tagging --enable
echo "OK"
echo "\n=====[3/5] 복제할 스트림 식별 규칙 설정 (VLAN ID 기반) ====="
libfci_cli fwfeat-el-set --feature=stream-identification --element=handle_table --pos=$STREAM_ID --us=4 --payload=$STREAM_ID
libfci_cli fwfeat-el-set --feature=stream-identification --element=iport_table --pos=$STREAM_ID --us=1 --payload=$HIF0_ID
libfci_cli fwfeat-el-set --feature=stream-identification --element=vlanid_table --pos=$STREAM_ID --us=2 --payload=$VLAN_ID
echo "OK"
echo "\n=====[4/5] 스트림 복제 및 시퀀스 태깅 설정 ====="
libfci_cli fwfeat-el-set --feature=stream-splitting --element=port_mask_table --pos=$STREAM_ID --us=1 --payload=$PORT_MASK
libfci_cli fwfeat-el-set --feature=tagging --element=tag_en_table --pos=$STREAM_ID --us=1 --payload=1
echo "OK"
echo "\n=====[5/5] 트래픽 전달을 위한 L2 브릿지 및 네트워크 설정 ====="
libfci_cli bd-add --vlan=$VLAN_ID
libfci_cli bd-insif --vlan=$VLAN_ID --interface=hif0
libfci_cli bd-insif --vlan=$VLAN_ID --interface=emac0
libfci_cli bd-insif --vlan=$VLAN_ID --interface=emac1
libfci_cli bd-update --vlan=$VLAN_ID --ucast-miss=FLOOD
ip link add link hif0 name hif0.$VLAN_ID type vlan id $VLAN_ID
ip addr add $MY_IP/24 dev hif0.$VLAN_ID
ip link set hif0.$VLAN_ID up
echo "OK"
echo "\n[성공] 송신측(Talker) 설정이 완료되었습니다."
echo "이제 'ping $TARGET_IP' 명령어로 테스트를 시작하세요."
EOF
chmod +x /home/root/frer_talker.sh
/home/root/frer_talker.sh
이제 모든 설정이 완료되었습니다. 테스트를 시작합니다.
tcpdump -i hif0.200 -n icmp
tcpdump: listening on hif0.200...
메시지가 나오고 커서가 깜빡이며 대기합니다.ping
을 보냅니다.
ping 192.168.200.2
ping
을 시작하면, 보드 B의 tcpdump
화면에 아래와 유사한 메시지가 1초에 한 번씩 출력되어야 합니다.
19:30:01.123456 IP 192.168.200.1 > 192.168.200.2: ICMP echo request, id 123, seq 1, length 64
19:30:02.123457 IP 192.168.200.1 > 192.168.200.2: ICMP echo request, id 123, seq 2, length 64
...
ping
이 계속 실행되는 동안, 랜선 1(P2A끼리 연결된 선)을 물리적으로 뽑습니다.tcpdump
는 잠깐 멈추거나 한두 패킷을 놓칠 수 있지만, 끊기지 않고 계속해서 패킷을 수신해야 합니다.이제 터미널에 복사-붙여넣기만으로 모든 설정과 테스트 준비가 완료됩니다. 보드 수리가 끝나면 이 절차대로 진행해 보십시오.