SGMII, 1000BASE-X, QSGMII, USXGMII: PHY ও SFP-এর সঙ্গে সিরিয়াল ইন্টারফেস
প্রতিটি 1G SFP কেজে একটি 1.25 GBd সিরিয়াল লেন থাকে। এই লেন দুটি রীতিতে কাজ করতে পারে, যা অসিলোস্কোপে একই রকম দেখায়: 1000BASE-X, ফাইবার মডিউল যে IEEE ইন্টারফেস আশা করে, আর SGMII, Cisco-র সংস্করণ, যা 10/100 Mb/s যোগ করে এবং অটো-নেগোশিয়েশন করে অন্যভাবে। কপার SFP থাকে এ দুইয়ের সীমানায়, আর “কপার SFP 1G-তে লিংক হয়, কিন্তু আমার 100 Mb/s ক্যামেরা হয় না” ধরনের বেশির ভাগ সাপোর্ট টিকিটের কারণ এই রীতির অমিল। এই পেজে আছে গিগাবিটের দুটি রীতি ও তাদের অটো-নেগোশিয়েশন, 2500BASE-X, মাল্টি-পোর্ট QSGMII, মাল্টিগিগ ও 10GBASE-T SFP+-এর জন্য USXGMII, এবং Linux ও সুইচ কীভাবে মোড বেছে নেয়।
1000BASE-X: SFP-এর নিজস্ব ইন্টারফেস (Clause 36/37)
| বিষয় | মান |
|---|---|
| রেট | 1.25 GBd, 8b/10b → 1000 Mb/s পে-লোড |
| লেন | প্রতি দিকে 1টি ডিফারেনশিয়াল জোড়া (CML, AC-কাপলড) |
| কোডিং | 8b/10b, /K28.5/ কমাসহ; অর্ডার্ড সেট /C1/ /C2/ (কনফিগারেশন), /I1/ /I2/ (আইডল) |
| অটো-নেগোশিয়েশন | Clause 37: /C/ অর্ডার্ড সেটে 16-বিট কনফিগারেশন ওয়ার্ড বিনিময় হয়: ফুল/হাফ ডুপ্লেক্স, পজ (প্রতিসম/অপ্রতিসম), দূরবর্তী ত্রুটি, অ্যাকনলেজমেন্ট। গতির কোনো ফিল্ড নেই: 1000BASE-X শুধু 1G |
| কোথায় | সুইচ/NIC SerDes → SFP কেজ; ফাইবার SFP (SX/LX/ZX/BiDi/CWDM) এটি সরাসরি লেজারে পাঠিয়ে দেয়; PCS থাকে হোস্টে |
ফাইবার SFP স্বচ্ছ: হোস্ট যা কোড করে, তা-ই আলো হয়ে বেরিয়ে যায়। তাই 1G ফাইবার মডিউলের কোনো “মোড” নেই, কিন্তু পোর্টের আছে, এবং সেটি 1000BASE-X হতে হবে (প্রায়ই “SerDes” বা “ফাইবার” মোড হিসেবে দেখানো হয়; দূরের প্রান্তে AN না থাকলে Cisco-তে speed nonegotiate)।
SGMII: গিগাবিটের সঙ্গে 10/100 (Cisco SGMII স্পেসিফিকেশন v1.8)
| বিষয় | মান |
|---|---|
| রেট | একই 1.25 GBd, 8b/10b |
| 10/100 সমর্থন | প্রতিটি ডেটা বাইট 100 বার (10 Mb/s) বা 10 বার (100 Mb/s) পুনরাবৃত্ত করা হয়, ফলে লাইন 1.25 GBd-তেই থাকে |
| লেন | 2টি জোড়া; ঐচ্ছিক 625 MHz DDR ক্লক জোড়া (TX_CLK/RX_CLK); বেশির ভাগ SerDes বাস্তবায়ন ক্লক ছাড়াই চলে |
| অটো-নেগোশিয়েশন | SGMII কন্ট্রোল ওয়ার্ড (এটিও /C/ অর্ডার্ড সেটে যায়, 16 বিট): বিট 15 লিংক, বিট 11–10 গতি (10/100/1000), বিট 12 ডুপ্লেক্স, বিট 14 অ্যাকনলেজ; PHY থেকে MAC-এর দিকে পাঠানো হয়, যাতে MAC জানতে পারে কপারের দিকে কী নেগোশিয়েট হয়েছে। Clause 37-এর বিষয়বস্তুর সঙ্গে মেলে না |
| কোথায় | MAC ↔ কপার PHY (Marvell 88E15xx, TI DP83867, Broadcom); কপার SFP সমর্থন চায় এমন বোর্ডে SoC ↔ SFP কেজ; কপার 1000BASE-T SFP-এর ভেতরে |
SGMII হলো MAC–PHY ইন্টারফেস; “অটো-নেগোশিয়েশন” ঘটে দুবার: প্রথমে PHY ও লিংক পার্টনারের মাঝের টুইস্টেড পেয়ারে Clause 28 অনুযায়ী, তারপর SGMII কন্ট্রোল ওয়ার্ড ফলাফল MAC-কে জানায়। হোস্ট Clause 37 আশা করলে অথচ SGMII ওয়ার্ড পেলে (বা উল্টোটা ঘটলে), লিংক AN শেষ করতে পারে না; প্রচলিত সমাধান পোর্টে AN বন্ধ করা (speed nonegotiate, no negotiation auto, autoneg off), তবে শুধু 1G-তে।
দুইয়ের মাঝখানে কপার SFP
| হোস্ট পোর্টের মোড | কপার SFP-এর আচরণ | 10/100 ক্লায়েন্ট |
|---|---|---|
| 1000BASE-X, AN চালু | মডিউলের PHY-কে Clause 37-এর উত্তর দিতে হয়; অনেকে দেয় (অনুকরণ করে), কেউ কেউ দেয় না, তখন AN বন্ধ না করা পর্যন্ত লিংক হয় না | না (গতির ফিল্ড নেই) |
| 1000BASE-X, AN বন্ধ | কপারের দিকে 1G নেগোশিয়েট হলে 1G-তে লিংক হয় | না |
| SGMII, AN চালু | PHY কন্ট্রোল ওয়ার্ডের মাধ্যমে 10/100/1000 জানায় | হ্যাঁ |
| SGMII, AN বন্ধ | স্থির 1G | না |
Marvell 88E1111-ভিত্তিক কপার SFP মডিউল ডিফল্টভাবে SGMII বা 1000BASE-X-এ চলে; কোনটি হবে, তা নির্ভর করে উৎপাদনের সময় সেট করা কনফিগারেশন EEPROM বা স্ট্র্যাপের ওপর। ভেন্ডররা একই মডিউলের “SGMII” ও “SerDes” সংস্করণ আলাদাভাবে বিক্রি করে, আর কোনো কোনোটিকে মডিউলের I²C দিয়ে পৌঁছানো PHY রেজিস্টারের মাধ্যমে বদলানো যায়। যেসব সুইচ পোর্টের তালিকায় “1000BASE-T SFP সমর্থিত” লেখা থাকে, সেগুলো ওই কেজে SGMII বাস্তবায়ন করে (কপার ইথারনেট ও DAC)।
100BASE-FX SFP
100 Mb/s ফাইবার SFP (100BASE-FX, 1310 nm, 2 km) চালাতে হোস্টকে লেন চালাতে হয় 4b/5b কোডিংয়ে 125 MBd-এ, আর সেটি সম্পূর্ণ আলাদা PCS। কাজ করে শুধু সেসব পোর্ট, যা স্পষ্টভাবে “100M SFP” সমর্থন করে (ক্যাম্পাস সুইচের অনেকগুলো, নির্বাচিত পোর্টে; বেশির ভাগ রাউটার; ডেটা সেন্টারের সুইচ কম); অন্য পোর্টে মডিউল শনাক্ত হয়, কিন্তু লিংক হয় না। কিছু হোস্ট SGMII পুনরাবৃত্তির মাধ্যমে 100BASE-FX চালায়, আর সেক্ষেত্রে মডিউলে একটি আলাদা PHY থাকে (“SGMII-তে 100M” SFP)।
2500BASE-X
| বিষয় | মান |
|---|---|
| রেট | 3.125 GBd, 8b/10b → 2.5 Gb/s |
| স্ট্যান্ডার্ড | IEEE-এর কোনো মান নেই (ডি ফ্যাক্টো, 2.5 × 1000BASE-X); Linux-এ phy-interface-type = "2500base-x" |
| AN | Clause 37-এর ধরনের, প্রায়ই বন্ধ রাখা হয় |
| কোথায় | 2.5G SFP মডিউল (2.5GBASE-T কপার, 2.5G ফাইবার); হোস্টের দিকে GPON/EPON ONU স্টিক (2.5G ডাউনস্ট্রিম); Wi-Fi 6 AP আপলিংক; কিছু 2.5G সুইচের SFP কেজ |
মাল্টিগিগের IEEE-সমতুল্য হলো 2.5GBASE-X/5GBASE-R (802.3bz), কিন্তু বেশির ভাগ সিলিকন 2500BASE-X বা USXGMII-তে কথা বলে।
QSGMII: এক লেনে চারটি পোর্ট
| বিষয় | মান |
|---|---|
| রেট | 5 GBd, 8b/10b; 4টি SGMII চ্যানেল টাইম-মাল্টিপ্লেক্স করা |
| লেন | চারটি পোর্টের জন্য 2টি জোড়া |
| কোথায় | সুইচ ASIC ↔ কোয়াড কপার PHY (48-পোর্ট অ্যাক্সেস সুইচে 48টি SGMII-এর বদলে 12টি QSGMII লেন); বাইরের SerDes-এর মাধ্যমে কয়েকটি কোয়াড-পোর্ট SFP কেজ নকশায় |
| ভ্যারিয়েন্ট | QSGMII (Cisco); কিছু Qualcomm/Realtek SoC-তে “PSGMII”-ও (5টি পোর্ট) |
সাধারণ নকশায় কেজে এটি চোখে পড়ে না; গুরুত্ব পায় তখন, যখন কোয়াড-PHY বোর্ডে SFP কম্বো পোর্ট থাকে এবং সেগুলোর মোড PHY চ্যানেলের মোড থেকে নেওয়া হয়।
USXGMII: একটি 10G লেনে 10 Mb/s থেকে 10 Gb/s
| বিষয় | মান |
|---|---|
| রেট | 10.3125 GBd, 64b/66b (10GBASE-R ইলেকট্রিক্যাল) |
| গতি | 10M, 100M, 1G, 2.5G, 5G, 10G, সিম্বল পুনরাবৃত্তির মাধ্যমে (SGMII-এর উচ্চতর গতির রূপ) |
| স্পেসিফিকেশন | Cisco USXGMII (v1.2), ব্যাপকভাবে গৃহীত; Linux-এ usxgmii |
| মাল্টি-পোর্ট | USXGMII-M: একটি 10G লেনে 4 × 2.5G, 2 × 5G, 4 × 1G+… (QSGMII-এর মতো) |
| AN | 64b/66b আইডলে USXGMII AN ওয়ার্ড, গতি/ডুপ্লেক্স/লিংক জানায় |
| কোথায় | ASIC ↔ মাল্টিগিগ PHY (2.5/5/10GBASE-T পোর্ট); 10GBASE-T SFP+ মডিউল (ভেতরের PHY, যেমন Marvell AQR/Broadcom) |
10GBASE-T SFP+ মডিউল সাধারণ SFP+ পোর্টে 10GBASE-R (SFI) দেখায় এবং 10G-তে লিংক হয়। এটি একই সঙ্গে 1G/2.5G/5G ক্লায়েন্টকেও সেবা দিতে পারবে কি না, তা নির্ভর করে হোস্ট ওই কেজে USXGMII রেট অ্যাডাপ্টেশন সমর্থন করে কি না। বেশির ভাগ সুইচ করে না, ফলে মডিউল শুধু 10G-তে চলে, অথবা অভ্যন্তরীণভাবে রেট অ্যাডাপ্টেশন করে হোস্টকে 10G জানায়, আর কপারের দিকে চলে কম গতিতে (গতি ও রেট)।
হোস্ট কীভাবে মোড বেছে নেয়
| হোস্ট | পদ্ধতি |
|---|---|
| Linux phylink/SFP | A0h-এর বাইট 3–10 (কমপ্লায়েন্স), 12 (নমিনাল রেট), 36 (বর্ধিত) এবং বাইট 6-এর বিট 3 (1000BASE-T) পড়ে: 1000BASE-T → SGMII (SoC-তে SGMII না থাকলে 1000BASE-X); 1000BASE-SX/LX → 1000BASE-X; BR 3.1 GBd → 2500BASE-X; 10G কোড → 10GBASE-R; মডিউলের ভেতরের কপার PHY-কে I²C-তে (অ্যাড্রেস 0x56/0xAC) খুঁজে বের করা হয় এবং চালায় phylib |
| সুইচ NOS | পোর্টের ডিফল্ট আসে প্ল্যাটফর্ম থেকে (বেশির ভাগ 1G SFP কেজ SGMII-সক্ষম; 1G-তে চলা SFP+/SFP28 প্রায়ই শুধু 1000BASE-X), কমান্ড speed 1000, speed nonegotiate, media-type sfp, negotiation auto, port-mode |
| NIC ড্রাইভার | Intel: SFP+ পোর্ট 1G সমর্থন করে শুধু 1000BASE-X-এ (10/100 কপার SFP নয়); Mellanox: কিছু মডেলে 1G চলে 1000BASE-X-এ; Broadcom: ফার্মওয়্যার অনুযায়ী (NIC পোর্ট) |
| কপার SFP | PHY মোডের স্ট্র্যাপ/EEPROM (SGMII বনাম SerDes ভ্যারিয়েন্ট); AN-এর আচরণ ঠিক করে ভেন্ডরের ফার্মওয়্যার |
অমিলের সারণি
| লক্ষণ | কারণ | সমাধান |
|---|---|---|
| কপার SFP: 1G ক্লায়েন্ট ঠিক আছে, 10/100 কখনো লিংক হয় না | পোর্ট 1000BASE-X-এ আছে | SGMII-সক্ষম পোর্টে সরান, অথবা হোস্টের দিকে 1G-তে অ্যাডাপ্টেশন করে 10/100 আড়াল করে এমন মডিউল ব্যবহার করুন |
| ফাইবার SFP শুধু AN বন্ধ থাকলে লিংক হয় | দূরের প্রান্তে Clause 37 নেই (মিডিয়া কনভার্টার, কিছু ONU), অথবা কপার মডিউল থেকে SGMII ওয়ার্ড আসছে | speed nonegotiate / autoneg off |
| 100BASE-FX SFP শনাক্ত হয়, লিংক হয় না | হোস্টে 100M SerDes মোড নেই | 100M SFP সমর্থন করে এমন পোর্ট ব্যবহার করুন, অথবা SGMII-তে 100BASE-FX মডিউল নিন |
| 2.5G SFP 1G-তে লিংক হয় বা একেবারেই হয় না | হোস্টে 2500BASE-X নেই | 2.5G-সক্ষম কেজ বা রেট ফলব্যাকসহ মডিউল বেছে নিন |
| ONU স্টিক লিংক হয়, তারপর কেটে যায় | 2500BASE-X বনাম 1000BASE-X-এর প্রত্যাশার অমিল, AN | হোস্টকে 2500BASE-X-এ রাখুন, AN বন্ধ করুন (PON অপটিক্স) |
| 10GBASE-T SFP+ শুধু 10G-তে লিংক হয় | হোস্টে USXGMII নেই | শুধু 10G মেনে নিন, অথবা অভ্যন্তরীণ রেট অ্যাডাপ্টেশনসহ মডিউল ব্যবহার করুন |
| Linux: মডিউল এক বোর্ডে চলে, আরেকটিতে চলে না | phylink EEPROM থেকে ভিন্ন ইন্টারফেস বেছে নিয়েছে; SoC-তে সেই মোড নেই | dmesg-এ sfp: module … interface খুঁজুন; কমপ্লায়েন্স বাইট বা ডিভাইস ট্রি ঠিক করুন |
CodingBox-এ
হোস্টের সিদ্ধান্ত যে বাইটগুলো নিয়ন্ত্রণ করে, সবই A0h-এ: কমপ্লায়েন্স কোড 3–10 (1000BASE-T, SX, LX, 10G কোড), নমিনাল বিট রেট 12, এনকোডিং 11 (8b/10b বনাম 64b/66b), বর্ধিত কমপ্লায়েন্স 36। 1000BASE-SX হিসেবে কোড করা কপার মডিউলকে ফাইবার ধরা হবে, ফলে তার 10/100 পথ হারিয়ে যাবে; ভুলে 1000BASE-T বিট সেট হয়ে যাওয়া ফাইবার মডিউলকে চালানো হবে SGMII হিসেবে। CodingBox এই ফিল্ডগুলো দেখায় এবং সম্পাদনা করতে দেয় (Check transceiver, কমপ্লায়েন্স কোড)।