CMIS — সাধারণ ব্যবস্থাপনা ইন্টারফেস
CMIS, অর্থাৎ Common Management Interface Specification, প্রতিটি নতুন হাই-স্পিড ফর্ম ফ্যাক্টরের ম্যানেজমেন্ট মডেল: QSFP-DD, OSFP, OSFP-XD, QSFP112, SFP-DD, SFP112 (SFP+ with CMIS হিসেবে), DSFP, COBO এবং CMIS-সক্ষম QSFP। এর সূচনা QSFP-DD MSA-তে (CMIS 3.0, 2018 সালে); পরে OSFP ও COBO গোষ্ঠী এটি গ্রহণ করে, আর 5.0 সংস্করণ (2021) থেকে এর রক্ষণাবেক্ষণ করছে OIF। SFF-8636-এর তুলনায় এটি আরও বড় মেমোরি ম্যাপ নয়, বরং ভিন্ন একটি মডেল: সর্বোচ্চ 32 লেনের জন্য ব্যাংকযুক্ত পেজ, মডিউল ও প্রতিটি ডেটা পাথের জন্য স্পষ্ট স্টেট মেশিন, কমপ্লায়েন্স বিট ফিল্ডের বদলে অ্যাপ্লিকেশন, বহুমুখী ডায়াগনস্টিকস (VDM) এবং ফার্মওয়্যার ও বর্ধিত ফাংশনের জন্য কমান্ড চ্যানেল (CDB)। সংস্করণ বাইট ও ইতিহাস: স্পেসিফিকেশনের রিভিশন।
মেমোরি মডেল
| অংশ | অ্যাড্রেসিং | বিষয়বস্তু |
|---|---|---|
| লোয়ার পেজ (বাইট 0–127) | সব সময় দৃশ্যমান | আইডেন্টিফায়ার, রিভিশন, মডিউলের অবস্থা, ফ্ল্যাগ, মডিউল মনিটর, গ্লোবাল কন্ট্রোল, মিডিয়ার ধরন, অ্যাপ্লিকেশন ডেস্ক্রিপ্টর 1–8, পাসওয়ার্ড, ব্যাংক নির্বাচন 126, পেজ নির্বাচন 127 |
| আপার পেজ 00h (128–255) | পেজ 127 = 00h | ভেন্ডর ব্লক, পাওয়ার ক্লাস, কানেক্টর, ক্যাবলের দৈর্ঘ্য, মিডিয়া প্রযুক্তি, চেকসাম |
| 01h | সক্ষমতা ঘোষণা | ফার্মওয়্যার/হার্ডওয়্যার রিভিশন, লিংকের দৈর্ঘ্য, তরঙ্গদৈর্ঘ্য, সমর্থিত পেজ ও ব্যাংক, সময়কাল, সিগন্যাল ইন্টিগ্রিটি নিয়ন্ত্রণ, ডেস্ক্রিপ্টর 9–15 |
| 02h | থ্রেশহোল্ড | মডিউল ও লেনের অ্যালার্ম/সতর্কতার থ্রেশহোল্ড |
| 04h | লেজারের সক্ষমতা | টিউনেবল লেজারের গ্রিড ও পরিসর (SFF-TA-1004-এর ধারা) |
| 10h (ব্যাংকযুক্ত) | লেন নিয়ন্ত্রণ | ডেটা পাথ ডি-ইনিশিয়ালাইজ, Tx নিষ্ক্রিয়করণ, পোলারিটি, স্কুয়েলচ, ইকুয়ালাইজেশন, স্টেজড কন্ট্রোল সেট |
| 11h (ব্যাংকযুক্ত) | লেনের অবস্থা | ডেটা পাথের অবস্থা, প্রতি লেনের ফ্ল্যাগ, লেন মনিটর, কনফিগারেশনের অবস্থা, অ্যাক্টিভ কন্ট্রোল সেট |
| 12h (ব্যাংকযুক্ত) | টিউনেবল লেজার নিয়ন্ত্রণ | প্রতি লেনের চ্যানেল/তরঙ্গদৈর্ঘ্য |
| 13h–14h (ব্যাংকযুক্ত) | ডায়াগনস্টিকস | লুপব্যাক, PRBS জেনারেটর ও চেকার |
| 20h–2Fh (ব্যাংকযুক্ত) | VDM | ডেস্ক্রিপ্টর, স্যাম্পল, থ্রেশহোল্ড, ফ্ল্যাগ |
| 9Fh | CDB | কমান্ড ব্লক: কমান্ড ID, দৈর্ঘ্য, চেকসাম, লোকাল পেলোড |
| A0h–AFh | CDB EPL | বড় ট্রান্সফারের (ফার্মওয়্যার ইমেজ) জন্য বর্ধিত পেলোড |
| 80h–FFh (অন্যান্য) | ভেন্ডর | কাস্টম পেজ |
একটি ব্যাংক 8টি লেন নির্দেশ করে: ব্যাংক 0-তে লেন 1–8, ব্যাংক 1-এ লেন 9–16, এভাবে চলে; কয়টি ব্যাংক বাস্তবায়িত, তা পেজ 01h-এ ঘোষণা করা থাকে। যেসব মডিউলে শুধু পেজ 00h আছে, সেগুলো ফ্ল্যাট মেমোরি বিট (বাইট 2-এর বিট 7) সেট করে। বাস: একটিমাত্র অ্যাড্রেস A0h, সর্বোচ্চ 400 kHz, প্রতি স্লটে ModSelL — টু-ওয়্যার ইন্টারফেস।
লোয়ার পেজ: যে বাইটগুলোর ওপর হোস্ট নির্ভর করে
| বাইট | ফিল্ড | মন্তব্য |
|---|---|---|
| 0 | আইডেন্টিফায়ার | 18h QSFP-DD, 19h OSFP, 1Eh CMIS-সহ QSFP… (SFF-8024) |
| 1 | CMIS রিভিশন | মেজর.মাইনর নিবল: 50h = 5.0, 40h = 4.0, 30h = 3.0 |
| 2 | মেমোরির বৈশিষ্ট্য | বিট 7 ফ্ল্যাট মেমোরি, সঙ্গে শুধু ধাপভিত্তিক কনফিগারেশনের বিট ও অন্যান্য সক্ষমতার বিট |
| 3 | মডিউলের অবস্থা | বিট 3–1: 1 LowPwr, 2 PwrUp, 3 Ready, 4 PwrDn, 5 Fault; বিট 0 ইন্টারাপ্ট ডি-অ্যাসার্টেড |
| 8–11 | মডিউল ফ্ল্যাগ | অবস্থার পরিবর্তন, তাপমাত্রা/Vcc অ্যালার্ম, সহায়ক অ্যালার্ম, কাস্টম; ল্যাচ করা থাকে, পড়লে মুছে যায় |
| 14–25 | মডিউল মনিটর | তাপমাত্রা, Vcc, Aux1–Aux3 (TEC কারেন্ট, লেজারের তাপমাত্রা, অতিরিক্ত সরবরাহ), কাস্টম |
| 26 | গ্লোবাল কন্ট্রোল | 5.x: বিট 6 LowPwrAllowRequestHW, বিট 5 স্কুয়েলচ পদ্ধতি, বিট 4 LowPwrRequestSW, বিট 3 সফটওয়্যার রিসেট (4.x: বিট 6 LowPwr, বিট 4 ForceLowPwr) |
| 37–38 | CDB-এর অবস্থা | কমান্ড ব্লক 1 ও 2-এর জন্য ব্যস্ত / সফল / ব্যর্থ |
| 39–40 | সক্রিয় ফার্মওয়্যার | চলমান ইমেজের মেজর.মাইনর |
| 85 | মিডিয়ার ধরন | 01h MMF, 02h SMF, 03h প্যাসিভ কপার, 04h অ্যাক্টিভ ক্যাবল, 05h BASE-T |
| 86–117 | অ্যাপ্লিকেশন ডেস্ক্রিপ্টর 1–8 | প্রতিটি 4 বাইট: হোস্ট ইন্টারফেস ID, মিডিয়া ইন্টারফেস ID, হোস্ট/মিডিয়া লেনের সংখ্যা, হোস্ট লেন বণ্টনের বিকল্প |
| 118–121 | পাসওয়ার্ড পরিবর্তন | ভেন্ডর নির্ধারিত |
| 122–125 | পাসওয়ার্ড প্রবেশ | ভেন্ডর নির্ধারিত — লেখা-সুরক্ষার পাসওয়ার্ড এখানে যায় |
| 126 | ব্যাংক নির্বাচন | — |
| 127 | পেজ নির্বাচন | — |
মডিউলের স্টেট মেশিন
Reset ──► MgmtInit ──► ModuleLowPwr ──► ModulePwrUp ──► ModuleReady
▲ │
└──────── ModulePwrDn ◄────────┘
(মারাত্মক ত্রুটিতে যেকোনো অবস্থা থেকে ModuleFault)
- MgmtInit: মডিউল তার কন্ট্রোলার চালু করে; শনাক্তকরণ তথ্য এখনও পড়া যায় না (হার্ডওয়্যার স্পেসিফিকেশন অনুযায়ী সর্বোচ্চ 2 s)।
- ModuleLowPwr: শনাক্তকরণ তথ্য, সক্ষমতা ঘোষণা ও থ্রেশহোল্ড পড়া যায়; পাওয়ার ক্লাস 1-এ সীমিত; হোস্ট এখানেই মডিউল যাচাই করে।
- ModulePwrUp → ModuleReady: হোস্ট LPMode পিন ডি-অ্যাসার্ট করে (অথবা LowPwrRequestSW সাফ করে) এবং মডিউল তার অপটিক্স চালু করে; এখন ডেটা পাথ ইনিশিয়ালাইজ করা যায়।
- ModulePwrDn: LPMode অ্যাসার্ট করা হলে উল্টো প্রক্রিয়া ঘটে।
যে মডিউল কখনো LowPwr ছেড়ে বের হয় না, সেটি CMIS-এ সাপোর্টে আসা সবচেয়ে পরিচিত সমস্যা: CMIS-এর সমস্যা, পাওয়ার ও তাপমাত্রা।
অ্যাপ্লিকেশন ও ডেটা পাথ
কমপ্লায়েন্স বিটের বদলে CMIS মডিউল অ্যাপ্লিকেশন ঘোষণা করে। প্রতিটি অ্যাপ্লিকেশন হোস্টের ইলেকট্রিক্যাল ইন্টারফেস ও মিডিয়া ইন্টারফেসের একটি জোড়া, সঙ্গে লেনের সংখ্যা:
| ডেস্ক্রিপ্টর | হোস্ট ইন্টারফেস | মিডিয়া ইন্টারফেস | হোস্ট লেন / মিডিয়া লেন | উদাহরণ |
|---|---|---|---|---|
| অ্যাপ 1 | 12h 400GAUI-8 C2M | 1Ch 400GBASE-DR4 | 8 / 4 | একটি 400G লিংক |
| অ্যাপ 2 | 0Eh 100GAUI-2 C2M | 14h 100GBASE-DR | 2 / 1 | 4 × 100G ব্রেকআউট |
হোস্ট প্রতিটি লেনের জন্য অ্যাপ্লিকেশন বেছে নেয় স্টেজড কন্ট্রোল সেট 0-তে (পেজ 10h, বাইট 145–152) AppSel (বিট 7–4), DataPathID (বিট 3–1) ও এক্সপ্লিসিট কন্ট্রোল বিট লিখে; তারপর ApplyDPInit (পেজ 10h, বাইট 143) অ্যাসার্ট করে। মডিউল সাড়া দেয় ConfigStatus-এ (পেজ 11h, বাইট 202–205: গৃহীত, প্রত্যাখ্যাত, অবৈধ AppSel, অবৈধ লেন সমন্বয়…) এবং গৃহীত মানগুলো অ্যাক্টিভ কন্ট্রোল সেট-এ (পেজ 11h, 206–221) কপি করে। এরপর প্রতিটি ডেটা পাথ নিজস্ব স্টেট মেশিনের ধাপগুলো পার হয়:
DPDeactivated ──► DPInit ──► DPInitialized ──► DPTxTurnOn ──► DPActivated
▲ │
└────────── DPDeinit ◄───────── DPTxTurnOff ◄──────────────┘
অবস্থা প্রতি লেনে জানানো হয় পেজ 11h-এর বাইট 128–131-এ (প্রতি লেনে এক নিবল), আর প্রতিটি ধাপের সর্বোচ্চ সময়কাল পেজ 01h-এ ঘোষণা করা থাকে, যাতে হোস্ট জানে কতক্ষণ অপেক্ষা করতে হবে। প্রতি লেনের Tx নিষ্ক্রিয়করণ পেজ 10h-এর বাইট 130-এ থাকে। মডিউল যে ব্রেকআউটকে অ্যাপ্লিকেশন হিসেবে তালিকাভুক্ত করেনি, সেটি ব্যবহার করা যায় না: গতি ও রেট।
মনিটরিং: ফ্ল্যাগ, মনিটর, VDM
- মডিউল মনিটর (লোয়ার পেজ 14–25) এবং লেন মনিটর (পেজ 11h: Tx পাওয়ার 154–169, Tx বায়াস 170–185, Rx পাওয়ার 186–201, প্রতি লেনে 2 বাইট) SFP/QSFP-এর মতোই 16-বিট ফরম্যাট ব্যবহার করে (একক)।
- থ্রেশহোল্ড পেজ 02h-এ থাকে; ফ্ল্যাগ ল্যাচ করা থাকে এবং পড়লে মুছে যায়, প্রতিটি ফ্ল্যাগের আলাদা মাস্ক আছে; মাস্ক না করা যেকোনো ফ্ল্যাগ IntL জানিয়ে দেয়।
- VDM (পেজ 20h–2Fh) এমন পর্যবেক্ষণযোগ্য মান যোগ করে, যা পুরোনো স্পেসিফিকেশনে ছিল না: প্রি-FEC BER, সংশোধনের অযোগ্য FEC ফ্রেম, প্রতি লেনের SNR, লেজারের তাপমাত্রা ও বয়স, eSNR, PAM4 লেভেল ট্রানজিশনের প্যারামিটার; প্রতিটির নিজস্ব ডেস্ক্রিপ্টর, থ্রেশহোল্ড ও ফ্ল্যাগ আছে। এভাবেই 400G মডিউল এরর হোস্টে পৌঁছানোর আগেই লিংকের মান জানায় (মনিটরিং)।
CDB: কমান্ড ডেটা ব্লক
পেজ 9Fh একটি মেইলবক্সের মতো: হোস্ট লেখে একটি কমান্ড ID (বাইট 128–129), পেলোডের দৈর্ঘ্য (130–132), একটি চেকসাম (133) এবং সর্বোচ্চ 120 বাইটের লোকাল পেলোড (136–255), প্রয়োজনে আরও বেশি ডেটা EPL পেজ A0h–AFh-এ; মডিউল কমান্ড চালায় এবং ফল জানায় স্ট্যাটাস বাইট 37–38-এ ও একটি উত্তর-পেলোডে। প্রচলিত কমান্ডের মধ্যে আছে:
| কমান্ড | উদ্দেশ্য |
|---|---|
| 0000h | অবস্থা জানতে চাওয়া |
| 0040h / 0041h | মডিউলের ফিচার / ফার্মওয়্যার ব্যবস্থাপনার ফিচার |
| 0100h | ফার্মওয়্যারের তথ্য নেওয়া (চলমান ও নিষ্ক্রিয় ইমেজ) |
| 0101h | ফার্মওয়্যার ডাউনলোড শুরু করা |
| 0103h / 0104h | LPL / EPL-এর মাধ্যমে ফার্মওয়্যার ব্লক লেখা |
| 0107h | ডাউনলোড সম্পন্ন করা |
| 0109h / 010Ah | ইমেজ চালানো / ইমেজ কমিট করা |
| 0102h | বাতিল করা |
ভেন্ডরের টুল মাঠ পর্যায়ে মডিউলের ফার্মওয়্যার আপডেট করে CDB-এর মাধ্যমে, আর কিছু ভেন্ডর কনফিগারেশন ও আনলক ফাংশনও এর মাধ্যমে বাস্তবায়ন করে। সমর্থন ও ফিচার পেজ 01h-এ ঘোষণা করা থাকে।
চেকসাম ও পাসওয়ার্ড
পেজ 00h-এর বাইট 222 বাইট 128–221-এর চেকসাম ধারণ করে; পেজ 01h, 02h ও 04h বাইট 255-এ পেজ চেকসাম রাখে (চেকসাম)। পাসওয়ার্ড (122–125) এবং ভেন্ডরের আনলক পদ্ধতি স্পেসিফিকেশনের বাইরে: EEPROM রিকোডিং।
হোস্টের সমর্থন
নেটওয়ার্ক অপারেটিং সিস্টেম CMIS 4.0 ও 5.x ভিন্ন ভিন্ন গভীরতায় বাস্তবায়ন করে: কিছু সিস্টেম অ্যাপ্লিকেশন ও ডেটা পাথের পুরো প্রক্রিয়া চালায়, অন্যরা শুধু LPMode ছেড়ে দেয় আর আশা করে মডিউল নিজেই চালু হয়ে যাবে। “শনাক্ত হয়েছে, কিন্তু কখনো প্রস্তুত হয় না” ধরনের বেশির ভাগ সমস্যার পেছনে এই পার্থক্যই থাকে: CMIS-এর সমস্যা, হোস্ট কী করে।
CodingBox-এ
CodingBox আইডেন্টিফায়ার ও রিভিশন বাইট দেখে CMIS শনাক্ত করে, লোয়ার মেমোরি, পেজ 00h, 01h, 02h ও ব্যাংকযুক্ত লেন পেজ পড়ে, অ্যাপ্লিকেশন ডেস্ক্রিপ্টর SFF-8024-এর সঙ্গে মিলিয়ে ডিকোড করে, DDM-এ মডিউল ও ডেটা পাথের অবস্থা এবং প্রতি লেনের মনিটর দেখায়, আর EEPROM editor-এ পেজ চেকসাম নতুন করে হিসাব করে শনাক্তকরণ তথ্য সম্পাদনা করে। CDB-এর মাধ্যমে ফার্মওয়্যার-সংক্রান্ত কাজ ভেন্ডর-নির্দিষ্ট এবং এডিটরের আওতার বাইরে।
রেজিস্টার স্তরের টেবিল: লোয়ার পেজ ম্যাপ, আপার পেজ ম্যাপ 00h/01h/02h, লেন পেজ ম্যাপ 10h/11h, VDM, CDB।