Перейти к содержанию
    

Порядок байт Ethernet, IP

стоит задача отсылать/принимать IP пакеты используя FPGA Xilinx xaui 10G,

в спецификации описан хедер Ethernet фрэйма:

55 55 55 55 55 55 55 d5 DESTINATION_ADDRESS(48 бит) SOURCE_ADDRESS(48 бит) LENGTH(16 бит)

 

вопрос: порядок байт слева направа будет:

55 55 55 55 55 55 55 d5 DESTINATION_ADDRESS(47:0) SOURCE_ADDRESS(47:0) LENGTH(15:0)

или

55 55 55 55 55 55 55 d5 DESTINATION_ADDRESS(7:0) DESTINATION_ADDRESS(15:8) DESTINATION_ADDRESS(23:16) и т.д.?

 

и еще: в IP пакете хедер, порядок слева направа :

байт 0 | байт 1 | байт 2 | байт 3

Version(4 бита) IHL(4 бита) DSCP(6 бит) ECN(2 бита) Total Length(16 бит)

 

т.к. в сети биты в байте B(7:0) передаются B(0) первый, B(7) последний, можно предположить

что хотя Version стоит впереди IHL, он будет передан после IHL

так?

спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня в проекте для симуляции один из эзернет пакетов расписан так, может поможет:

    arr_pckt(IND_TCP_1)(0)        <= "01" & X"000000000000001E";
    arr_pckt(IND_TCP_1)(1)        <= "01" & X"D555555555555578";
    arr_pckt(IND_TCP_1)(2)        <= "10" & X"52f401000000cccc";    -- | Source MAC HIGH     | Dest MAC LOW        | Dest MAC HIGH                             |
    arr_pckt(IND_TCP_1)(3)        <= "10" & X"00450008c0a95e14";    -- | T. of S. | Vers| IHL| ETHER  TYPE         | Source MAC LOW                            |
    arr_pckt(IND_TCP_1)(4)        <= "10" & X"0680004033192900";    -- | Protocol | Time Live| Fragment Off | Flags| Identification      | Total Length        |
    arr_pckt(IND_TCP_1)(5)        <= "10" & X"a8c00501a8c0a55d";    -- | Dest Address HIGH   | Source Address LOW  | Source Address HIGH | Header Checksum     |
    arr_pckt(IND_TCP_1)(6)        <= "10" & X"9997bbbb8869a101";    -- |_Sequence_Number_HIGH|______Dest_Port______|______Source_Port____| Dest Address LOW    |
    arr_pckt(IND_TCP_1)(7)        <= "10" & X"185001100000dd0c";    -- |_L_HDR|_R_|_Flags____|_ACK_Number_LOW______|_ACK_Number_HIGH_____|_Sequence_Num
ber_LOW_|
    arr_pckt(IND_TCP_1)(8)        <= "10" & X"00390000a81970ff";    -- |..........| DATA=0x39|  Указатель важности |_Cheksum_____________|_WINDOW______________|  Cheksum = 0x19a8
    arr_pckt(IND_TCP_1)(9)        <= "10" & X"32D3872700000000";    -- 64 Byte
    arr_pckt(IND_TCP_1)(10)        <= "01" & X"0000000000000087";
    arr_pckt(IND_TCP_1)(11)        <= "01" & X"000000000000001E";

здесь заданы:

Dest MAC = cccc00000001

Source MAC = f452145ea9c0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня в проекте для симуляции один из эзернет пакетов расписан так, может поможет:

 

очень даже поможет, огромное спасибо, novartis

очевидно слова тут выплевываются справа на лево, ip c0.a8.01.05(192.168.1.5) 192.168.1.161(192.168.1.161)

..только вопрос, а что за проект для симуляции? ему можно верить?

и зачем в начале "10" и "01"?

<= "10" & ..

<= "01" & ..

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

стоит задача отсылать/принимать IP пакеты используя FPGA Xilinx xaui 10G,

WireShark поставить и записать пакет из линии...

Осциллом если будете смотреть в линии, то учтите, что трансивер на приеме автоматически выберет правильную полярность в линии. В самом начале идет код из 0 и 1 - 55. И как только нарушается эта последовательность кодом D5, так трансивер запоминает это и дальше в случае надобности ксорит все приходящие данные... Так что возможно будете наблюдать на приеме инверсные данные в линии. А после трансивера все будет нормально..

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

WireShark поставить и записать пакет из линии...

Осциллом если будете смотреть в линии, то учтите, что трансивер на приеме автоматически выберет правильную полярность в линии. В самом начале идет код из 0 и 1 - 55. И как только нарушается эта последовательность кодом D5, так трансивер запоминает это и дальше в случае надобности ксорит все приходящие данные... Так что возможно будете наблюдать на приеме инверсные данные в линии. А после трансивера все будет нормально..

Действительно, как же я про WireShark не подумал, спасибо.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

WireShark поставить и записать пакет из линии...

Осциллом если будете смотреть в линии, то учтите, что трансивер на приеме автоматически выберет правильную полярность в линии. В самом начале идет код из 0 и 1 - 55. И как только нарушается эта последовательность кодом D5, так трансивер запоминает это и дальше в случае надобности ксорит все приходящие данные... Так что возможно будете наблюдать на приеме инверсные данные в линии. А после трансивера все будет нормально..

 

Возможно я не так понял - но сам трансивер полярность автоматически не меняет(конкретно это проверял на kintex 7) на плате была перепутана полярность и пока мы это не заметили, долго копались. И вообще там на сколько помню - идет скремблирование(8b/10b или 64/66 - в зависимости от скорости - если работаем до 10Gbps). Настройка полярности ведется руками через порт TX/RX polarity. Хотя может с xaui не так - я только sfp работал

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возможно я не так понял - но сам трансивер полярность автоматически не меняет(конкретно это проверял на kintex 7) на плате была перепутана полярность и пока мы это не заметили, долго копались. И вообще там на сколько помню - идет скремблирование(8b/10b или 64/66 - в зависимости от скорости - если работаем до 10Gbps). Настройка полярности ведется руками через порт TX/RX polarity. Хотя может с xaui не так - я только sfp работал

меняет автоматически. Иначе на всех розетках были бы указания "+" и "-"... Мало того, новые трансиверы умеют понимать пары приема и передачи и автоматически их меняют...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...