{"id":13024,"date":"2024-07-25T22:04:59","date_gmt":"2024-07-25T22:04:59","guid":{"rendered":"https:\/\/introspect.ca\/blog\/how-to-test-mctp-over-i3c\/"},"modified":"2026-06-28T01:53:22","modified_gmt":"2026-06-28T01:53:22","slug":"how-to-test-mctp-over-i3c","status":"publish","type":"blogposts","link":"https:\/\/introspect.ca\/fr\/blog\/how-to-test-mctp-over-i3c\/","title":{"rendered":"Comment tester le MCTP via I3C"},"content":{"rendered":"<p>Le protocole MIPI I3C\u00ae continue de trouver des applications dans un large \u00e9ventail de domaines li\u00e9s au contr\u00f4le num\u00e9rique et \u00e0 la d\u00e9tection. Dans cet article, nous nous int\u00e9ressons \u00e0 la mani\u00e8re dont le protocole I3C peut \u00eatre utilis\u00e9 comme couche physique pour mettre en \u0153uvre le <a href=\"https:\/\/www.dmtf.org\/sites\/default\/files\/standards\/documents\/DSP0237_1.2.0.pdf\" target=\"_blank\" rel=\"noopener\">protocole MCTP (Management Component Transport Protocol)<\/a>, publi\u00e9 par l\u2019organisme de normalisation <a href=\"https:\/\/www.dmtf.org\/about\" target=\"_blank\" rel=\"noopener\">DMTF<\/a>. La sp\u00e9cification MCTP fait partie int\u00e9grante de nombreuses architectures informatiques et de serveurs, car elle d\u00e9finit la mani\u00e8re dont un contr\u00f4leur de gestion du syst\u00e8me peut communiquer avec des p\u00e9riph\u00e9riques g\u00e9r\u00e9s, tels que les cartes d&rsquo;extension PCIe et les disques durs. Avec l&rsquo;ajout r\u00e9cent d&rsquo;un m\u00e9canisme de liaison \u00e0 l&rsquo;I3C, de nombreux ing\u00e9nieurs \u00e9tudient actuellement comment concevoir le MCTP sur I3C et comment le tester.   <\/p>\n<h2><span lang=\"EN-US\">Le protocole MCTP en tant que couche de transport<\/span><\/h2>\n<p>Le protocole MCTP est un syst\u00e8me de messagerie align\u00e9 sur les octets qui s&rsquo;appuie sur une couche physique et\/ou un protocole de communication existant. C&rsquo;est pourquoi on le qualifie de \u00ab couche de transport \u00bb : il d\u00e9finit uniquement les octets constituant un message (de gestion et de contr\u00f4le), sans pr\u00e9ciser la mani\u00e8re dont ces octets sont transmis. Ce concept est illustr\u00e9 visuellement \u00e0 la figure 1.  <\/p>\n<figure id=\"attachment_9138\" aria-describedby=\"caption-attachment-9138\" style=\"width: 675px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9137\" src=\"https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-1_MCTP-blog-post-1-300x110.png\" alt=\"\" width=\"675\" height=\"248\" srcset=\"https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-1_MCTP-blog-post-1-300x110.png 300w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-1_MCTP-blog-post-1-1024x377.png 1024w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-1_MCTP-blog-post-1-768x283.png 768w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-1_MCTP-blog-post-1-1536x566.png 1536w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-1_MCTP-blog-post-1-2048x754.png 2048w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-1_MCTP-blog-post-1-600x221.png 600w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-1_MCTP-blog-post-1-163x60.png 163w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-1_MCTP-blog-post-1-244x90.png 244w\" sizes=\"auto, (max-width: 675px) 100vw, 675px\" \/><figcaption id=\"caption-attachment-9138\" class=\"wp-caption-text\"><strong>Figure 1 :<\/strong> Format g\u00e9n\u00e9rique des messages du protocole MCTP.<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p>Dans la figure ci-dessus, les sections grises correspondent aux en-t\u00eates et pieds de page typiques d&rsquo;une couche physique sous-jacente telle que PCI Express (PCIe). Les sections orange et vertes correspondent aux octets de charge utile d\u00e9finis par le protocole MCTP. Pour la couche physique sous-jacente, les paquets MCTP ne sont que des octets de charge utile, et ils suivent les m\u00eames sch\u00e9mas de codage et de mappage que la couche physique.  <\/p>\n<p>Pour mieux comprendre ce principe, imaginez une carte m\u00e8re \u00e9quip\u00e9e d\u2019un disque SSD connect\u00e9 via un emplacement PCIe. Ce disque est un p\u00e9riph\u00e9rique g\u00e9r\u00e9 dans le cadre du protocole MCTP. De plus, les messages de contr\u00f4le MCTP peuvent \u00eatre transmis entre le processeur et le disque via le protocole PCIe lui-m\u00eame. Ceci est illustr\u00e9 sch\u00e9matiquement \u00e0 la figure 2.   <\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_9192\" aria-describedby=\"caption-attachment-9192\" style=\"width: 689px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9191 size-full\" src=\"https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-2.png\" alt=\"Transfert de messages de contr\u00f4le MCTP entre un processeur et un disque dur via le protocole PCIe.\" width=\"689\" height=\"161\" srcset=\"https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-2.png 689w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-2-300x70.png 300w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-2-600x140.png 600w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-2-190x44.png 190w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-2-385x90.png 385w\" sizes=\"auto, (max-width: 689px) 100vw, 689px\" \/><figcaption id=\"caption-attachment-9192\" class=\"wp-caption-text\"><strong>Figure 2 :<\/strong> Transmission de messages de contr\u00f4le MCTP entre un processeur et un disque dur via le protocole PCIe.<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p>Or, si vous avez d\u00e9j\u00e0 utilis\u00e9 le PCIe, vous savez qu\u2019il s\u2019agit d\u2019un bus tr\u00e8s performant et tr\u00e8s complexe ; il est donc pr\u00e9f\u00e9rable de l\u2019utiliser pour effectuer des transferts critiques (comme la lecture de fichiers volumineux \u00e0 partir d\u2019un disque dur) \u00e0 vitesse maximale, plut\u00f4t que pour la gestion du syst\u00e8me. C\u2019est pourquoi, dans de nombreuses impl\u00e9mentations pratiques, le protocole MCTP s\u2019appuie souvent sur d\u2019autres couches physiques plus simples, telles que le SMBus. Et d\u00e9sormais, gr\u00e2ce \u00e0 la r\u00e9cente interface I3C, le protocole MCTP s\u2019appuie sans probl\u00e8me sur une couche physique <a href=\"https:\/\/www.mipi.org\/specifications\/i3c-sensor-specification\" target=\"_blank\" rel=\"noopener\">I3C<\/a>! Voir la figure 3.   <\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_9187\" aria-describedby=\"caption-attachment-9187\" style=\"width: 700px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9186\" src=\"https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-3-1.png\" alt=\"MCTP sur la couche physique I3C\" width=\"700\" height=\"180\" srcset=\"https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-3-1.png 741w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-3-1-300x77.png 300w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-3-1-600x155.png 600w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-3-1-190x49.png 190w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-3-1-349x90.png 349w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><figcaption id=\"caption-attachment-9187\" class=\"wp-caption-text\"><strong>Figure 3 :<\/strong> MCTP sur la couche physique I3C.<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<h2><span lang=\"EN-US\">Comment les messages d&rsquo;\u00e9criture et de lecture MCTP sont-ils g\u00e9r\u00e9s dans I3C ?<\/span><\/h2>\n<p>Dans cette section, nous d\u00e9crivons comment les op\u00e9rations d&rsquo;\u00e9criture (d&rsquo;un contr\u00f4leur de gestion vers un p\u00e9riph\u00e9rique g\u00e9r\u00e9) et de lecture (\u00e0 partir d&rsquo;un p\u00e9riph\u00e9rique g\u00e9r\u00e9) du protocole MCTP sont mises en \u0153uvre via I3C.<\/p>\n<h3><span lang=\"EN-US\">R\u00e9diger des messages<\/span><\/h3>\n<p>Du point de vue de l&rsquo;I3C, les \u00e9critures MCTP sont essentiellement <em>des \u00e9critures priv\u00e9es<\/em>. Le contr\u00f4leur cr\u00e9e simplement une condition de d\u00e9marrage sur le bus I3C, puis sp\u00e9cifie l&rsquo;adresse du p\u00e9riph\u00e9rique cible I3C (qui est le p\u00e9riph\u00e9rique g\u00e9r\u00e9 par MCTP) ainsi qu&rsquo;une commande d&rsquo;\u00e9criture. Lorsque le p\u00e9riph\u00e9rique cible re\u00e7oit l\u2019adresse et que le bit RnW est mis \u00e0 z\u00e9ro, indiquant un message d\u2019\u00e9criture, il accuse r\u00e9ception aupr\u00e8s du contr\u00f4leur (c\u2019est-\u00e0-dire qu\u2019il envoie une r\u00e9ponse ACK) pour signaler qu\u2019il est pr\u00eat \u00e0 recevoir les octets. Le contr\u00f4leur proc\u00e8de alors \u00e0 l\u2019envoi de ses octets. Ces octets contiennent une structure sp\u00e9cifique au MCTP, comme le montre la figure 1, mais pour le bus I3C, il s\u2019agit simplement d\u2019octets de charge utile.    <\/p>\n<p>La figure 4 illustre l&rsquo;encapsulation des paquets MCTP sur I3C. Comme on peut le constater, le premier octet est toujours fixe (il contient des bits r\u00e9serv\u00e9s et des informations de version). Le deuxi\u00e8me octet contient l&rsquo;identifiant du point d&rsquo;extr\u00e9mit\u00e9 de destination (EID), et ainsi de suite. Les d\u00e9finitions de ces octets sont d\u00e9taill\u00e9es dans les sp\u00e9cifications du protocole MCTP ; elles ne seront donc pas reprises ici. Notez qu\u2019une fois le paquet MCTP complet, le protocole I3C envoie un octet de code d\u2019erreur de paquet (PEC), qui est simplement requis par le protocole MCTP pour garantir sa robustesse.    <\/p>\n<figure id=\"attachment_9179\" aria-describedby=\"caption-attachment-9179\" style=\"width: 696px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9178\" src=\"https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-4_MCTP-blog-post-2-300x164.png\" alt=\"\" width=\"696\" height=\"381\" srcset=\"https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-4_MCTP-blog-post-2-300x164.png 300w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-4_MCTP-blog-post-2-1024x561.png 1024w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-4_MCTP-blog-post-2-768x421.png 768w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-4_MCTP-blog-post-2-1536x842.png 1536w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-4_MCTP-blog-post-2-2048x1122.png 2048w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-4_MCTP-blog-post-2-600x329.png 600w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-4_MCTP-blog-post-2-110x60.png 110w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-4_MCTP-blog-post-2-164x90.png 164w\" sizes=\"auto, (max-width: 696px) 100vw, 696px\" \/><figcaption id=\"caption-attachment-9179\" class=\"wp-caption-text\"><strong>Figure 4 :<\/strong> Encapsulation de paquets MCTP sur I3C.<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<h3><span lang=\"EN-US\">Lire les messages<\/span><\/h3>\n<p>Les messages de lecture MCTP sont un peu plus complexes que les \u00e9critures, principalement parce que les p\u00e9riph\u00e9riques g\u00e9r\u00e9s peuvent avoir besoin d\u2019un certain temps pour r\u00e9pondre aux commandes de lecture \u00e9mises par un contr\u00f4leur. C\u2019est pourquoi les op\u00e9rations de lecture s\u2019appuient souvent sur la fonctionnalit\u00e9 d\u2019interruption en bande (IBI) du protocole I3C. Il s\u2019agit d\u2019une fonctionnalit\u00e9 innovante qui permet \u00e0 un p\u00e9riph\u00e9rique (c\u2019est-\u00e0-dire un p\u00e9riph\u00e9rique g\u00e9r\u00e9) d\u2019avertir le contr\u00f4leur <em>lorsqu\u2019<\/em> il souhaite envoyer des donn\u00e9es.  <\/p>\n<p>Imaginons qu\u2019un contr\u00f4leur effectue une d\u00e9couverte MCTP initiale et souhaite conna\u00eetre la version MCTP du p\u00e9riph\u00e9rique. Dans ce cas, le contr\u00f4leur enverrait un paquet de contr\u00f4le MCTP (c\u2019est-\u00e0-dire que le champ \u00ab Message Type \u00bb de la figure 4 serait 0x00, ce qui correspond \u00e0 un message de contr\u00f4le MCTP) contenant une commande appel\u00e9e \u00ab GET MCTP Version Support \u00bb. Le p\u00e9riph\u00e9rique pr\u00e9parerait les octets de r\u00e9ponse dans son tampon de transmission interne. Ensuite, \u00e0 sa convenance et d\u00e8s qu\u2019il serait pr\u00eat \u00e0 r\u00e9pondre, il \u00e9mettrait une requ\u00eate IBI \u00e0 l\u2019intention du contr\u00f4leur. Une fois la requ\u00eate IBI re\u00e7ue, le contr\u00f4leur lancerait un message de lecture priv\u00e9 afin de r\u00e9cup\u00e9rer les octets de lecture provenant du p\u00e9riph\u00e9rique, conform\u00e9ment au protocole I3C.    <\/p>\n<p>L&rsquo;exemple ci-dessus est illustr\u00e9 graphiquement \u00e0 la figure 5. Veuillez noter que la requ\u00eate IBI comprend un octet de donn\u00e9es obligatoire (MDB) dont la valeur est r\u00e9serv\u00e9e aux paquets MCTP. <\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_9189\" aria-describedby=\"caption-attachment-9189\" style=\"width: 902px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9188 size-full\" src=\"https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-5-e1721948260395.png\" alt=\"Les op\u00e9rations de lecture MCTP s'appuient souvent sur la fonctionnalit\u00e9 IBI de l'I3C, comme illustr\u00e9 ci-dessus.\" width=\"902\" height=\"340\" srcset=\"https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-5-e1721948260395.png 902w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-5-e1721948260395-300x113.png 300w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-5-e1721948260395-768x289.png 768w, https:\/\/introspect.ca\/wp-content\/uploads\/2024\/07\/Figure-5-e1721948260395-600x226.png 600w\" sizes=\"auto, (max-width: 902px) 100vw, 902px\" \/><figcaption id=\"caption-attachment-9189\" class=\"wp-caption-text\"><strong>Figure 5 :<\/strong> Les op\u00e9rations de lecture MCTP s&rsquo;appuient souvent sur la fonctionnalit\u00e9 IBI de l&rsquo;I3C, comme illustr\u00e9 ci-dessus.<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p>Si la fonction IBI n&rsquo;est pas prise en charge par le p\u00e9riph\u00e9rique cible, une autre m\u00e9thode permettant de lire des donn\u00e9es via le protocole MCTP consiste \u00e0 utiliser l&rsquo;interrogation. En termes simples, le contr\u00f4leur continue d&rsquo;essayer de lire les donn\u00e9es d&rsquo;un p\u00e9riph\u00e9rique (en envoyant, par exemple, une commande de lecture priv\u00e9e I3C) jusqu&rsquo;\u00e0 ce que ce dernier r\u00e9ponde par un ACK et transmette les donn\u00e9es lues. <\/p>\n<p>Quelle que soit la mani\u00e8re dont les op\u00e9rations de lecture sont effectu\u00e9es (via IBI ou par interrogation), l&rsquo;encapsulation des messages MCTP repose toujours sur celle illustr\u00e9e \u00e0 la figure 1.<\/p>\n<h3><span lang=\"EN-US\">Th\u00e8mes avanc\u00e9s<\/span><\/h3>\n<p>Le protocole MCTP sur I3C inclut d\u2019autres fonctionnalit\u00e9s, telles que la prise en charge des concentrateurs et des p\u00e9riph\u00e9riques \u00ab hot-plug \u00bb. Ces fonctionnalit\u00e9s d\u00e9passent le cadre du pr\u00e9sent article, mais elles sont prises en charge de mani\u00e8re tout \u00e0 fait transparente par le protocole I3C ! Par exemple, lorsqu\u2019un p\u00e9riph\u00e9rique \u00ab hot-plug \u00bb est ins\u00e9r\u00e9 dans un syst\u00e8me en fonctionnement, il peut \u00e9mettre une interruption I3C \u00ab Hot-Join \u00bb, et le contr\u00f4leur sera alors en mesure de le reconna\u00eetre et de lui attribuer une adresse dynamique.  <\/p>\n<h2><span lang=\"EN-US\">Test du protocole MCTP sur I3C<\/span><\/h2>\n<p><a href=\"https:\/\/introspect.ca\/fr\/product\/sv6e-x-mid-frequency-digital-test-module\/\" target=\"_blank\" rel=\"noopener\">Le module de test num\u00e9rique \u00e0 moyenne fr\u00e9quence SV6E-X<\/a> est la solution prim\u00e9e d\u2019Introspect destin\u00e9e au test et \u00e0 la validation des interfaces I3C et de celles qui en d\u00e9coulent. Il prend bien entendu en charge le protocole MCTP sans aucune difficult\u00e9. Par exemple, pour utiliser le SV6E-X en tant que contr\u00f4leur et g\u00e9n\u00e9rer des messages MCTP \u00e0 l\u2019intention d\u2019un p\u00e9riph\u00e9rique g\u00e9r\u00e9 soumis au test, il suffit d\u2019utiliser une commande telle que :  <\/p>\n<pre>controllerDevice.doPrivateWrite(peripheralAddress, mctpPacketBytes)\n\n<\/pre>\n<p>La variable `mctpPacketBytes` est une liste Python contenant une s\u00e9quence d&rsquo;octets. Ces octets sont construits selon le format pr\u00e9sent\u00e9 \u00e0 la figure 4. <\/p>\n<p>De m\u00eame, le SV6E-X peut servir de p\u00e9riph\u00e9rique pour tester des contr\u00f4leurs. Dans ce cas, le transfert de messages MCTP entre le p\u00e9riph\u00e9rique et le contr\u00f4leur peut s&rsquo;effectuer \u00e0 l&rsquo;aide de l&rsquo;exemple de code suivant : <\/p>\n<pre>targetDevice.setReadResponseBufferData(mctpPeripheralPacketBytes)\ntargetParams1.ibiMandatoryByte = 0xAE\ntargetDevice.update()\ntargetDevice.requestIBI()\n\n<\/pre>\n<p>Enfin, le SV6E-X peut \u00eatre utilis\u00e9 comme <a href=\"https:\/\/introspect.ca\/blog\/5-things-you-need-to-know-about-the-i3c-purvue-analyzer-embedded-real-time-oscilloscope\/\" target=\"_blank\" rel=\"noopener\">analyseur de protocole et comme oscilloscope en temps r\u00e9el<\/a>, et toutes ces fonctionnalit\u00e9s sont disponibles pour les tests MCTP.<\/p>\n<h2><span lang=\"EN-US\">Conclusion<\/span><\/h2>\n<p>Dans cet article, nous avons d\u00e9crit le protocole MCTP et la mani\u00e8re dont il est encapsul\u00e9 sur le protocole MIPI I3C. Nous avons illustr\u00e9 comment les octets des paquets MCTP peuvent \u00eatre format\u00e9s pour cr\u00e9er des messages d\u2019\u00e9criture d\u2019un contr\u00f4leur vers un p\u00e9riph\u00e9rique, et nous avons \u00e9galement montr\u00e9 comment un p\u00e9riph\u00e9rique peut signaler au contr\u00f4leur qu\u2019il est pr\u00eat \u00e0 envoyer des donn\u00e9es de lecture via des interruptions en bande, afin que le contr\u00f4leur puisse ensuite \u00e9mettre des messages de lecture priv\u00e9s pour r\u00e9cup\u00e9rer les donn\u00e9es aupr\u00e8s du p\u00e9riph\u00e9rique. Enfin, nous avons pr\u00e9sent\u00e9 le module de test num\u00e9rique \u00e0 moyenne fr\u00e9quence SV6E-X et montr\u00e9 comment il prend naturellement en charge les tests MCTP sur I3C.  <\/p>\n<p>Vous avez des questions concernant les tests MCTP par rapport aux tests I3C ? \u00c9crivez-nous \u00e0 l&rsquo;adresse <a href=\"mailto:info@introspect.ca\" target=\"_blank\" rel=\"noopener\">info@introspect.ca<\/a>. <\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le protocole MIPI I3C\u00ae continue de trouver des applications dans un large \u00e9ventail de domaines li\u00e9s au contr\u00f4le num\u00e9rique et \u00e0 la d\u00e9tection. Dans<\/p>\n","protected":false},"author":19,"featured_media":9183,"menu_order":0,"template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"class_list":["post-13024","blogposts","type-blogposts","status-publish","has-post-thumbnail","hentry","blog_topics-perspectives-techniques","blog_tags-mctp","blog_tags-sv6e-x","blog_tags-i3c"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/introspect.ca\/fr\/wp-json\/wp\/v2\/blogposts\/13024","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/introspect.ca\/fr\/wp-json\/wp\/v2\/blogposts"}],"about":[{"href":"https:\/\/introspect.ca\/fr\/wp-json\/wp\/v2\/types\/blogposts"}],"author":[{"embeddable":true,"href":"https:\/\/introspect.ca\/fr\/wp-json\/wp\/v2\/users\/19"}],"version-history":[{"count":1,"href":"https:\/\/introspect.ca\/fr\/wp-json\/wp\/v2\/blogposts\/13024\/revisions"}],"predecessor-version":[{"id":13025,"href":"https:\/\/introspect.ca\/fr\/wp-json\/wp\/v2\/blogposts\/13024\/revisions\/13025"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/introspect.ca\/fr\/wp-json\/wp\/v2\/media\/9183"}],"wp:attachment":[{"href":"https:\/\/introspect.ca\/fr\/wp-json\/wp\/v2\/media?parent=13024"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}