버전 비교

  • 이 줄이 추가되었습니다.
  • 이 줄이 삭제되었습니다.
  • 서식이 변경되었습니다.

...

    • INT란?
    • MRI는 INT의 축소판 및 간편한 방법이라고 생각하면 된다. 튜토리얼 예시 같은 경우 토폴로지를 S1,S2,S3의 스위치가 있고, S1 = h1,h11. S2 = h2,h22. S3=h3 이렇게 연결 되어있으며, 각각의 스위치는 서로 연결 되어 있다. 그러하여 h1 → h2로 패킷을 보낼시에 MRI에 측정되는 SwitchTrace는 2개이며, 카운트 또한 2로 나오게 되는것이다.

    • 코드 블럭
      titleMRI(Multi-Hop Route Inspection)
      header ipv4_option_t {                        //MRI를 이용하기 위한 헤더 선언//
      bit<1> copyFlag;
      bit<2> optClass;
      bit<5> option;
      bit<8> optionLength;
      }
      
      
      header mri_t {								// mri작동을 위한 count수 설정을 통해 스위치 수 카운트 //
      bit<16> count;
      }
      
      
      header switch_t {							//MRI를 이용하면서 지나는 switch의 이름과 qdepth를 저장하기 위한 헤더 선언//
      switchID_t swid;
      qdepth_t qdepth;
      }
      
      
      state parse_ipv4_option {
      packet.extract(hdr.ipv4_option);
      transition select(hdr.ipv4_option.option) {
      IPV4_OPTION_MRI: parse_mri;
      default: accept;
      }
      }
      
      
      state parse_mri {
      packet.extract(hdr.mri);
      meta.parser_metadata.remaining = hdr.mri.count;
      transition select(meta.parser_metadata.remaining) {
      0 : accept;
      default: parse_swtrace;
      }
      }
      
      
      state parse_swtrace {
      packet.extract(hdr.swtraces.next);
      meta.parser_metadata.remaining = meta.parser_metadata.remaining - 1;
      transition select(meta.parser_metadata.remaining) {
      0 : accept;
      default: parse_swtrace;
      }
      } 



2/21

2/22

2/23

2/24


Memo

P4를 이용하기 전  무조건 알아두면 좋은 점 및 소개