2017-09-11 12 views

答えて

0

DPIDは、スイッチを一意に識別します。 MACアドレスは一般に公開されません。 また、スイッチ自体には一般的にMACアドレスが (機能/インターフェイスごとに数十のMACアドレスがある可能性があります)がありません。 スイッチは下位レベルで動作しますが、MACアドレスで動作します。

+0

私はそれがLLDPと関連があると考えていました。 – LostInTheFrequencyDomain

0

あなたが参照しているMACが不明です。 DPNの各ポートのMACアドレスを参照している場合は、FlowCapableNodeConnectorモデルのリスナを登録することができ、リスナのaddメソッドでFlowCapableNodeConnector#getHardwareAddressを呼び出してMACを取得できます。また、VM /パケットの送信元/宛先MACについて話している場合は、パケットをコントローラにパントする必要があります。次に、PacketProcessingListenerを使用してMACを抽出すると、以下のようになります。

public void onPacketReceived(PacketReceived notification) { 

    final short tableId = notification.getTableId().getValue(); 
    final byte[] data = notification.getPayload(); 
    Ethernet res = new Ethernet(); 

    try { 
     res.deserialize(data, 0, data.length * NetUtils.NumBitsInAByte); 
    } catch (Exception e) { 
     LOG.warn("PacketInHandler: Failed to decode Packet ", e); 
     return; 
    } 
    try { 
     Packet pkt = res.getPayload(); 
     LOG.info("Packet type is ->{}", pkt.getClass().getName()); 
     if (pkt instanceof IPv4) { 
      IPv4 ipv4 = (IPv4) pkt; 
      byte[] srcMac = res.getSourceMACAddress(); 
      byte[] dstMac = res.getDestinationMACAddress(); 
     } 
    } 
} 
+0

実際に私はこれを投稿していただきありがとうございます。 – LostInTheFrequencyDomain

関連する問題